
    :root { --bg:#f5f7f6; --surface:#fff; --soft:#eef5f2; --ink:#182426; --muted:#637376; --line:#dce6e2; --green:#337861; --blue:#3d6f98; --warn:#9a6425; --danger:#a8422d; --shadow:0 18px 45px rgba(29,48,50,.08); }
    * { box-sizing:border-box; }
    body { margin:0; font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; background:linear-gradient(180deg,#eef5f2 0,#f5f7f6 320px); color:var(--ink); }
    header { position:sticky; top:0; z-index:10; background:rgba(245,247,246,.9); border-bottom:1px solid rgba(220,230,226,.86); backdrop-filter:blur(14px); }
    .bar, main { width:min(1240px, calc(100% - 32px)); margin:0 auto; }
    .bar { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
    h1, h2, h3, h4, p { overflow-wrap:anywhere; }
    h1 { margin:3px 0 0; font-size:26px; line-height:1.1; }
    h2 { margin:0; font-size:22px; line-height:1.25; }
    h3 { margin:0; font-size:17px; }
    h4 { margin:0 0 12px; font-size:15px; }
    p { margin:0; }
    a { color:var(--green); text-decoration:none; font-weight:800; }
    nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
    nav a { min-height:36px; display:inline-flex; align-items:center; padding:0 12px; border:1px solid transparent; border-radius:8px; color:var(--muted); }
    nav a:hover, .nav-logout { border-color:var(--line); background:#fff; color:var(--green); }
    main { padding:26px 0 72px; }
    .eyebrow { margin:0; color:var(--green); font-size:12px; font-weight:900; letter-spacing:0; text-transform:uppercase; }
    .workspace-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.72fr); gap:20px; align-items:end; margin-bottom:18px; padding:24px; border:1px solid var(--line); border-radius:8px; background:linear-gradient(135deg,#fff,rgba(238,245,242,.88)); box-shadow:var(--shadow); }
    .workspace-hero h2 { max-width:780px; margin:8px 0 10px; font-size:30px; }
    .workspace-hero p:not(.eyebrow) { max-width:760px; color:var(--muted); line-height:1.7; }
    .hero-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .hero-stats span { min-height:76px; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--muted); font-weight:800; }
    .hero-stats strong { display:block; margin-bottom:2px; color:var(--ink); font-size:30px; line-height:1; }
    .message { margin:0 0 18px; padding:13px 15px; border:1px solid #bfe2d5; border-radius:8px; background:#edf8f3; color:#225f4b; font-weight:900; }
    .panel { margin:0 0 18px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
    .panel-title { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
    .panel-title p { margin-top:5px; color:var(--muted); line-height:1.6; }
    form { margin:0; }
    label, .field { display:block; color:var(--muted); font-size:13px; font-weight:900; }
    input, textarea, select { width:100%; min-height:44px; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font:inherit; color:var(--ink); background:#fff; outline:none; }
    input:focus, textarea:focus { border-color:#8cc5b2; box-shadow:0 0 0 3px rgba(51,120,97,.12); }
    textarea { min-height:96px; resize:vertical; }
    button { border:0; border-radius:8px; padding:10px 14px; font:inherit; font-weight:900; cursor:pointer; background:var(--green); color:#fff; }
    button.secondary { background:#edf6f2; color:var(--green); }
    button.danger { background:#fff0ec; color:var(--danger); }
    .hint { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.55; }
    .form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
    .form-grid .wide, .record-grid .wide { grid-column:1 / -1; }
    .field span, .field > label, .record-form label span { display:block; margin-bottom:6px; }
    .sr-only-v51410 { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
    .actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:18px; }
    .age-toolbar { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .chip-button { min-height:30px; padding:0 10px; border:1px solid var(--line); background:#fff; color:var(--muted); font-size:12px; }
    .work-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:18px; align-items:start; }
    .today-stack { display:grid; gap:10px; }
    .today-group { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .today-group.warning { border-color:#f1c9b8; background:#fff8f4; }
    .today-group strong { display:flex; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
    .summary-card { min-height:142px; padding:16px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .summary-card strong { display:flex; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .summary-card strong b { color:var(--green); font-size:22px; line-height:1; }
    .summary-card.overdue { border-color:#f0c7ba; background:#fff7f3; }
    .summary-card.upcoming { background:#fbfcff; }
    .task-list { display:grid; gap:8px; }
    .task-form { display:flex; align-items:flex-start; gap:9px; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .task-form input { width:17px; min-height:17px; margin:2px 0 0; accent-color:var(--green); flex:0 0 auto; }
    .task-form span { color:var(--muted); font-size:13px; line-height:1.4; }
    .task-form.completed span { color:#8a989a; text-decoration:line-through; }
    .calendar-board { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .month-card { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; }
    .month-card h3 { margin:0; padding:13px 14px; background:#edf6f2; font-size:16px; }
    .weekdays, .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
    .weekdays span { padding:8px 4px; color:var(--muted); text-align:center; font-size:12px; font-weight:900; border-bottom:1px solid var(--line); }
    .day-cell { min-height:96px; padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
    .day-cell:nth-child(7n) { border-right:0; }
    .day-cell.empty { background:#f8faf9; }
    .day-number { display:inline-flex; min-width:24px; height:24px; align-items:center; justify-content:center; border-radius:999px; font-weight:900; font-size:12px; }
    .day-cell.today .day-number { background:var(--green); color:#fff; }
    .due-pill { margin-top:6px; padding:6px; border-radius:7px; background:#fff7ed; color:var(--warn); font-size:12px; line-height:1.25; }
    .due-pill.demold { background:#edf6f2; color:#2f6f5b; }
    .due-pill.completed { background:#eef1f1; color:#7a8b8d; }
    .due-pill.task-form span { color:inherit; font-size:12px; }
    .block-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; margin-bottom:14px; }
    .block-toolbar input { background:#fbfdfc; }
    .block-filter-panel-v31, .lab-image-filter-panel { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:10px; margin:0 0 14px; }
    .block-filter-panel-v31 label, .lab-image-filter-panel label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:900; }
    .block-filter-panel-v31 select, .lab-image-filter-panel select { width:100%; min-height:38px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); padding:0 10px; font-weight:800; }
    .block-list { display:grid; gap:12px; }
    .block-card { padding:0; border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; }
    .block-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:16px; border-bottom:1px solid var(--line); background:#fbfdfc; }
    .block-title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
    .block-title strong { font-size:18px; }
    .badge { min-height:24px; display:inline-flex; align-items:center; padding:0 9px; border-radius:999px; background:#edf6f2; color:var(--green); font-size:12px; font-weight:900; }
    .block-meta { display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:13px; }
    .block-meta span { min-height:28px; display:inline-flex; align-items:center; padding:0 9px; border:1px solid var(--line); border-radius:999px; background:#fff; }
    .task-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; padding:14px 16px; border-bottom:1px solid var(--line); }
    .record-details { border:0; background:#fff; }
    .record-details summary { cursor:pointer; display:flex; justify-content:space-between; gap:12px; padding:15px 16px; font-weight:900; color:var(--green); list-style:none; }
    .record-details summary::-webkit-details-marker { display:none; }
    .record-details summary em { color:var(--muted); font-style:normal; font-weight:700; font-size:13px; text-align:right; }
    .record-details summary:after { content:"展开"; min-width:44px; color:var(--blue); font-size:13px; text-align:right; }
    .record-details[open] summary:after { content:"收起"; }
    .record-form { padding:0 16px 18px; border-top:1px solid var(--line); background:#fbfdfc; }
    .record-section { margin-top:16px; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .record-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.record-form .actions { margin-top:14px; }
.result-change-reason-v515 small { display:block; margin-top:6px; color:var(--muted); line-height:1.45; }
.result-change-reason-v515 input[aria-invalid="true"] { border-color:#b42318; outline:3px solid rgba(180,35,24,.14); }
    .inline-delete { margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
    .hidden { display:none !important; }
    @media (max-width:980px) { .workspace-hero, .work-grid, .calendar-board, .summary-grid { grid-template-columns:1fr; } .form-grid, .record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    @media (max-width:640px) { .bar { align-items:flex-start; flex-direction:column; padding:14px 0; } nav a { padding:0 10px; } .workspace-hero, .panel { padding:16px; } .workspace-hero h2 { font-size:24px; } .hero-stats, .form-grid, .block-head, .block-toolbar, .task-checks, .record-grid { grid-template-columns:1fr; } .record-details summary { flex-direction:column; } .record-details summary em { text-align:left; } }
  
    header { background:rgba(246,248,246,.86); }
    .bar { min-height:78px; }
    nav a { background:rgba(255,255,255,.5); }
    .workspace-hero { position:relative; overflow:hidden; min-height:260px; background:linear-gradient(135deg,#ffffff 0%,#f4faf7 58%,#edf4fb 100%); border-color:rgba(196,213,211,.9); box-shadow:0 24px 70px rgba(28,50,55,.11); }
    .workspace-hero:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(51,120,97,.08),transparent 44%),linear-gradient(180deg,transparent,rgba(255,255,255,.52)); pointer-events:none; }
    .workspace-hero > * { position:relative; }
    .workspace-hero h2 { font-size:34px; line-height:1.14; }
    .hero-stats span { background:rgba(255,255,255,.82); box-shadow:0 16px 40px rgba(24,36,38,.06); }
    .lab-layout { display:grid; gap:18px; }
    .lab-overview { display:grid; grid-template-columns:1.05fr .95fr; gap:18px; align-items:start; }
    .top-work-grid { align-items:start; }
    .top-work-grid .lab-overview { grid-column:auto; }
    .visual-panel { padding:18px; border:1px solid rgba(205,220,217,.92); border-radius:8px; background:#fff; box-shadow:0 18px 54px rgba(29,48,50,.08); }
    .visual-panel h3 { margin:0 0 12px; color:var(--green); font-size:18px; }
    .stat-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
    .stat-strip span { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .stat-strip b { color:var(--ink); font-size:24px; line-height:1; }
    .stat-strip small { color:var(--muted); font-weight:800; }
    .calendar-dashboard { display:grid; gap:14px; margin:16px 0; }
    .calendar-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
    .calendar-kpis button { display:grid; gap:5px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; text-align:left; cursor:pointer; box-shadow:none; }
    .calendar-kpis button:hover, .calendar-kpis button:focus-visible, .calendar-kpis button.active { transform:none; outline:none; box-shadow:0 12px 26px rgba(20,38,35,.1); }
    .calendar-kpis b { color:var(--ink); font-size:24px; line-height:1; }
    .calendar-kpis small { color:var(--muted); font-size:12px; font-weight:900; }
    .calendar-kpis .danger b { color:#a8422d; }
    .calendar-kpis .today b { color:var(--green); }
    .calendar-agenda { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .calendar-agenda-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
    .calendar-agenda-head h3 { margin:0; color:var(--green); font-size:17px; }
    .calendar-agenda-head p { margin:3px 0 0; color:var(--muted); font-size:13px; font-weight:800; }
    .calendar-legend { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
    .calendar-legend span { min-height:28px; display:inline-flex; align-items:center; gap:6px; padding:0 9px; border:1px solid var(--line); border-radius:999px; background:#fbfdfc; color:var(--muted); font-size:12px; font-weight:900; }
    .calendar-legend span:before { content:""; width:8px; height:8px; border-radius:999px; background:#cbd8d4; }
    .calendar-legend .demold:before { background:#337861; }
    .calendar-legend .age:before { background:#d28b34; }
    .calendar-legend .result:before { background:#3d6f98; }
    .calendar-legend .overdue:before { background:#a8422d; }
    .calendar-agenda-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .calendar-task-link-v22 { display:flex; align-items:center; gap:8px; text-decoration:none; cursor:pointer; }
    .calendar-task-link-v22 span { color:inherit; font-size:13px; line-height:1.35; }
    .calendar-task-link-v22.completed span { color:#7a8b8d; text-decoration:line-through; }
    .calendar-task-link-v22.due-pill { display:block; }
    .calendar-task-link-v22.due-pill span { font-size:12px; }
    .agenda-task { min-height:42px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .agenda-task.today { border-color:#c7dfd6; background:#edf6f2; }
    .agenda-task.overdue { border-color:#e7c4b8; background:#fff7ed; color:#8b3d2a; }
    .agenda-task.completed { opacity:.65; background:#f1f4f3; }
    .day-cell.has-due { background:#fffefd; }
    .day-cell.has-overdue { background:#fff8f3; }
    .day-cell.all-completed { background:#f5f7f7; }
    .due-pill.today { border:1px solid #c7dfd6; background:#edf6f2; color:var(--green); }
    .due-pill.overdue { border:1px solid #e7c4b8; background:#fff1e8; color:#8b3d2a; }
    .due-pill.upcoming { border:1px solid #f0d6ad; background:#fff8eb; }
    .due-pill.result { border:1px solid #c8dcef; background:#f3f8fc; color:#3d6f98; }
    .viz-list { display:grid; gap:9px; }
    .viz-row { display:grid; grid-template-columns:112px minmax(0,1fr) 54px; gap:10px; align-items:center; color:var(--muted); font-size:12px; font-weight:900; }
    .viz-track { overflow:hidden; height:11px; border-radius:999px; background:#e8efed; }
    .viz-fill { display:block; width:var(--w,0%); height:100%; border-radius:999px; background:linear-gradient(90deg,#337861,#88b6a8); }
    .viz-fill.warn { background:linear-gradient(90deg,#a8422d,#e4b04c); }
    .gangue-folder-list { display:grid; gap:16px; }
    .gangue-folder { border:1px solid rgba(195,214,210,.95); border-radius:8px; background:#fff; overflow:hidden; box-shadow:0 18px 54px rgba(29,48,50,.07); }
    .gangue-folder > summary { list-style:none; cursor:pointer; }
    .gangue-folder > summary::-webkit-details-marker { display:none; }
    .gangue-folder:not([open]) .gangue-folder-head { border-bottom:0; }
    .gangue-folder:not([open]) { box-shadow:0 10px 34px rgba(29,48,50,.055); }
    .gangue-folder-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:18px; background:linear-gradient(135deg,#ffffff,#f4faf7); border-bottom:1px solid var(--line); }
    .gangue-folder-title { display:grid; gap:4px; min-width:0; }
    .gangue-folder-title strong { margin:2px 0 2px; color:var(--green); font-size:24px; line-height:1.16; }
    .gangue-folder-title small { margin:0; color:var(--muted); font-weight:800; }
    .folder-badges { display:flex; align-items:flex-start; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
    .folder-badges span { min-height:32px; display:inline-flex; align-items:center; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--green); font-size:12px; font-weight:900; }
    .gangue-folder-body { display:grid; gap:16px; padding:16px; }
    .folder-section { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .folder-section h4 { margin:0 0 10px; color:var(--green); font-size:16px; }
    .folder-section h4 small { color:var(--muted); font-weight:800; }
    .lab-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(142px,1fr)); gap:10px; margin-top:10px; }
    .lab-photo { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .lab-photo a { display:block; color:inherit; text-decoration:none; }
    .lab-photo-preview { position:relative; min-height:0; background:#edf4f7; }
    .lab-photo img { width:100%; aspect-ratio:4 / 3; object-fit:cover; display:block; background:#edf4f7; }
    .lab-photo-fallback {
      aspect-ratio:4 / 3;
      display:grid;
      place-items:center;
      align-content:center;
      gap:6px;
      padding:12px;
      background:linear-gradient(135deg,#f8fbfa,#edf4f7);
      color:var(--muted);
      text-align:center;
      font-size:12px;
      font-weight:900;
    }
    .lab-photo-fallback b { color:var(--green); font-size:13px; }
    .lab-photo-fallback small { color:var(--muted); font-weight:800; }
    .lab-photo-preview.image-preview-broken img { display:none; }
    .lab-photo-preview.image-preview-broken .lab-photo-fallback { display:grid; }
    .lab-photo figcaption { display:grid; gap:4px; padding:9px; color:var(--ink); font-size:12px; font-weight:900; }
    .lab-photo small { color:var(--muted); font-weight:800; }
    .lab-photo form { margin:0; padding:0 9px 9px; box-shadow:none; border:0; background:transparent; }
    .lab-photo button { width:100%; min-height:32px; padding:0 8px; font-size:12px; box-shadow:none; }
    .image-edit-v32 { margin:0 9px 9px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .image-edit-v32 summary { cursor:pointer; padding:8px 10px; color:var(--green); font-size:12px; font-weight:900; list-style:none; }
    .image-edit-v32 summary::-webkit-details-marker { display:none; }
    .image-edit-v32 form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:0 9px 9px; }
    .image-edit-v32 label { display:grid; gap:4px; color:var(--muted); font-size:11px; font-weight:900; }
    .image-edit-v32 button { grid-column:1 / -1; }
    .lab-upload { display:grid; gap:10px; margin-top:10px; padding:12px; border:1px dashed #c9ddd6; border-radius:8px; background:#fff; }
    .lab-upload-grid { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:10px; }
    .lab-upload input[type=file] { background:#fff; }
    .mini-progress { display:none; gap:6px; color:var(--muted); font-size:12px; font-weight:800; }
    .mini-progress.active { display:grid; }
    .mini-progress.success { color:var(--green); }
    .mini-progress.error { color:var(--danger); }
    .mini-progress-track { overflow:hidden; height:8px; border-radius:999px; background:#e8efed; }
    .mini-progress-bar { display:block; width:0%; height:100%; border-radius:999px; background:#337861; }
    .mini-progress.error .mini-progress-bar { background:var(--danger); }
    .add-block-panel { background:#fff; }
    .add-block-panel > summary { list-style:none; cursor:pointer; }
    .add-block-panel > summary::-webkit-details-marker { display:none; }
    .add-block-panel > summary h4 { margin:0; }
    .add-block-panel[open] > summary { margin-bottom:12px; }
    .workflow-form-v32 { display:grid; gap:14px; }
    .workflow-form-v32 section { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .workflow-form-v32 h5 { margin:0; color:var(--green); font-size:13px; font-weight:900; }
    .workflow-form-v32 h5 small { color:var(--muted); font-weight:800; }
    .nested-block-list { display:grid; gap:12px; }
    .orphan-panel { border-color:#e4d2a8; background:#fffdf6; }
    .panel { border-color:rgba(205,220,217,.92); box-shadow:0 18px 54px rgba(29,48,50,.08); }
    .panel-title h2 { font-size:24px; }
    input, textarea, select { background:#fbfdfc; }
    button { min-height:42px; box-shadow:0 10px 24px rgba(51,120,97,.18); }
    button.secondary { border:1px solid rgba(51,120,97,.16); box-shadow:none; }
    button.danger { border:1px solid rgba(168,66,45,.14); box-shadow:none; }
    .summary-card, .today-group, .block-card, .month-card { box-shadow:0 12px 34px rgba(29,48,50,.06); }
    .block-head { background:linear-gradient(180deg,#fbfdfc,#f5faf7); }
    .task-checks { background:#fff; }
    .task-form { align-items:center; }
    .task-form input { width:19px; min-height:19px; }
    .task-form span { font-size:13px; }
    .reminder-delete-v22 { min-height:28px; padding:0 8px; margin-left:auto; border:1px solid #ead2cb; border-radius:8px; background:#fff8f4; color:#a8422d; font-size:12px; box-shadow:none; }
    .block-toolbar { grid-template-columns:minmax(0,1fr) auto auto; }
    .block-code-hint-v24 { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-height:54px; padding:10px; border:1px dashed #bfd8cf; border-radius:8px; background:#f5fbf8; }
    .block-code-hint-v24 strong { color:var(--green); font-size:15px; letter-spacing:0; }
    .block-code-hint-v24 small { color:var(--muted); font-weight:800; }
    .archive-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
    .archive-actions .chip-button { min-height:36px; padding:0 12px; box-shadow:none; }
    .export-check { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--green); font-size:13px; font-weight:900; }
    .export-check input { width:17px; min-height:17px; padding:0; accent-color:var(--green); }
    .export-count-v311 { min-height:34px; display:inline-flex; align-items:center; padding:0 10px; border:1px solid #d7e6e0; border-radius:8px; background:#fbfdfc; color:var(--muted); font-size:12px; font-weight:900; white-space:nowrap; }
    .block-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
    .record-details summary { user-select:none; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; padding:14px 16px; background:#fff; transition:background .16s ease; }
    .record-details summary:hover { background:#fbfdfc; }
    .record-details summary:focus-visible { outline:3px solid rgba(51,120,97,.16); outline-offset:-3px; }
    .record-summary-main { min-width:0; display:grid !important; gap:4px; padding:0 !important; border-radius:0 !important; background:transparent !important; }
    .record-summary-main strong { color:var(--green); font-size:15px; line-height:1.2; }
    .record-summary-main em { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:var(--muted); font-style:normal; font-size:13px; font-weight:800; line-height:1.35; text-align:left; }
    .record-toggle { min-height:32px; display:inline-flex !important; align-items:center; gap:8px; padding:0 10px !important; border:1px solid var(--line); border-radius:8px !important; background:#f6faf8 !important; color:var(--green); font-size:13px; font-weight:900; white-space:nowrap; transition:background .18s ease, border-color .18s ease; }
    .record-toggle .open-label { display:none; }
    .record-details[open] .record-toggle .closed-label { display:none; }
    .record-details[open] .record-toggle .open-label { display:inline; }
    .record-toggle:after { content:""; width:8px; height:8px; border-right:2px solid var(--green); border-bottom:2px solid var(--green); transform:rotate(45deg) translate(-1px,-1px); transition:transform .18s ease; }
    .record-details[open] .record-toggle { background:#edf6f2 !important; border-color:#c7dfd6; }
    .record-details[open] .record-toggle:after { transform:rotate(225deg) translate(-1px,-1px); }
    .record-form { background:linear-gradient(180deg,#fbfdfc,#fff); }
    .record-drawer-body { border-top:1px solid var(--line); background:linear-gradient(180deg,#fbfdfc,#fff); }
    .record-tabbar { display:flex; gap:8px; flex-wrap:wrap; padding:12px 16px; border-bottom:1px solid var(--line); background:#fff; }
    .record-tabbar button { min-height:34px; padding:0 12px; border:1px solid var(--line); background:#fff; color:var(--muted); box-shadow:none; }
    .record-tabbar button.active { border-color:#c7dfd6; background:#edf6f2; color:var(--green); }
    .record-panel[hidden] { display:none; }
    .record-section { padding:16px; }
    .record-details summary:after { content:none !important; display:none !important; }
    .record-tabs { display:grid; gap:14px; }
    .recipe-note { min-height:116px; }
    .metric-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:8px; }
    .metric-choice { display:flex; align-items:center; gap:8px; min-height:38px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:13px; font-weight:800; }
    .metric-choice input { width:17px; min-height:17px; padding:0; accent-color:var(--green); }
    .metric-choice span { margin:0; }
    .specimen-type-options-v34 { align-items:stretch; }
    .specimen-type-choice-v34 span { display:grid; gap:2px; }
    .specimen-type-choice-v34 small { color:var(--muted); font-size:11px; font-weight:800; }
    .specimen-template-field-v49 small { display:block; margin-top:5px; color:var(--muted); font-size:11px; font-weight:800; line-height:1.35; }
    .age-count-editor-v49 { display:grid; gap:8px; }
    .age-count-grid-v49 { display:flex; flex-wrap:wrap; gap:8px; }
    .age-count-grid-v49 label { width:92px; display:grid; gap:4px; margin:0; padding:8px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .age-count-grid-v49 small { color:var(--green); font-weight:900; }
    .age-count-grid-v49 input { min-height:34px; padding:0 8px; text-align:center; }
    .more-metrics { margin-top:10px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .more-metrics summary { cursor:pointer; color:var(--green); font-weight:900; }
    .custom-metrics { margin-top:10px; }
    .custom-material-row { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:10px; margin-top:10px; }
    .material-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:8px; }
    .material-group { padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .material-group-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; color:var(--green); font-size:13px; font-weight:900; }
    .material-options { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:0; }
    .material-library-item { display:grid; grid-template-columns:minmax(0,1fr) 118px 74px; gap:8px; align-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .material-library-item.disabled { opacity:.62; background:#f7faf8; }
    .material-library-item label { display:flex; align-items:center; gap:8px; margin:0; font-size:13px; font-weight:900; }
    .material-library-item input { width:17px; min-height:17px; padding:0; accent-color:var(--green); }
    .material-library-item select { min-height:34px; padding:0 8px; font-size:12px; }
    .material-library-item button { min-height:34px; padding:0 10px; font-size:12px; box-shadow:none; }
    .recipe-field-groups { display:grid; gap:14px; }
    .recipe-field-group { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .recipe-field-group h5 { margin:0 0 10px; color:var(--green); font-size:14px; }
    .ratio-panel { margin-top:14px; padding:14px; border:1px solid #cfe3dc; border-radius:8px; background:linear-gradient(180deg,#f8fcfa,#fff); }
    .ratio-panel strong { display:block; margin-bottom:10px; color:var(--green); }
    .ratio-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
    .ratio-grid span { display:grid; gap:4px; min-height:58px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .ratio-grid b { color:var(--muted); font-size:12px; }
    .ratio-grid em { color:var(--ink); font-style:normal; font-size:16px; font-weight:900; }
    .ratio-line { margin:10px 0 0; color:var(--muted); font-size:13px; font-weight:800; }
    .recipe-stack-v23 { display:grid; gap:8px; margin:0 0 12px; }
    .recipe-stack-v23.compact { margin:0; gap:6px; }
    .recipe-stack-title-v23, .recipe-stack-side-v23 { margin:0; color:var(--muted); font-size:11px; font-weight:900; }
    .recipe-stack-title-v23 small { color:#8aa09a; font-weight:900; }
    .recipe-stack-side-v23 { color:#3d6f98; }
    .recipe-stack-track-v23 { height:16px; display:flex; overflow:hidden; border:1px solid #d8e6e0; border-radius:999px; background:#eef5f2; }
    .recipe-stack-track-v23 span { width:var(--w,0%); min-width:4px; }
    .recipe-stack-track-v23 .binder, .recipe-stack-legend-v23 .binder b { background:#337861; }
    .recipe-stack-track-v23 .aggregate, .recipe-stack-legend-v23 .aggregate b { background:#8b6f47; }
    .recipe-stack-track-v23 .water, .recipe-stack-legend-v23 .water b { background:#3d6f98; }
    .recipe-stack-track-v23 .admixture, .recipe-stack-legend-v23 .admixture b { background:#d28b34; }
    .recipe-stack-legend-v23 { display:flex; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:11px; font-weight:900; }
    .recipe-stack-legend-v23 span { display:inline-flex; align-items:center; gap:5px; }
    .recipe-stack-legend-v23 b { width:8px; height:8px; border-radius:99px; }
    .research-block-v22 .recipe-stack-v23 { margin:0; }
    .research-block-v22 .recipe-stack-track-v23 { height:10px; }
    .template-weight-panel { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .template-weight-panel strong { color:var(--green); }
    .template-weight-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
    .template-weight-row, .template-weight-grid label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:900; }
    .template-weight-grid input { min-height:34px; }
    .gangue-list { display:grid; gap:12px; margin-top:16px; }
    .gangue-card { border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; }
    .gangue-card summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; list-style:none; }
    .gangue-card summary::-webkit-details-marker { display:none; }
    .gangue-card summary strong { color:var(--green); }
    .gangue-card summary span { color:var(--muted); font-size:13px; font-weight:800; }
    .gangue-form { padding:0 16px 16px; border-top:1px solid var(--line); background:#fbfdfc; }
    .gangue-range-table { width:100%; border-collapse:separate; border-spacing:0 8px; margin-top:8px; }
    .gangue-range-table th { color:var(--muted); font-size:12px; text-align:left; }
    .gangue-range-table td { padding-right:8px; }
    .gangue-range-table input { min-height:36px; }
    .gradation-list { display:grid; gap:12px; margin-top:10px; }
    .gradation-card { padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .gradation-card h5 { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 10px; color:var(--green); font-size:14px; }
    .gradation-card h5 small { color:var(--muted); font-size:12px; font-weight:800; }
    .gradation-weight-table { width:100%; border-collapse:separate; border-spacing:0 8px; margin-top:8px; }
    .gradation-weight-table th { color:var(--muted); font-size:12px; text-align:left; }
    .gradation-weight-table td { padding-right:8px; }
    .gradation-weight-table input { min-height:36px; }
    .gradation-weight-table td:first-child { width:38%; }
    .gangue-crushing-summary { margin-top:8px; padding:10px 12px; border:1px solid #cfe3dc; border-radius:8px; background:#f8fcfa; color:var(--green); font-size:13px; font-weight:900; }
    .crushing-average { display:inline-flex; min-height:36px; align-items:center; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--muted); font-weight:900; }
    .crushing-average.max-crushing { border-color:#e4b04c; background:#fff8e7; color:#8a5800; }
    .gangue-preview { grid-column:1 / -1; padding:12px; border:1px solid #cfe3dc; border-radius:8px; background:#f8fcfa; color:var(--muted); font-size:13px; font-weight:800; }
    .gangue-preview strong { display:block; margin-bottom:6px; color:var(--green); }
    .gangue-preview small { display:block; margin-top:4px; color:var(--muted); }
    .library-editor textarea { min-height:72px; }
    .library-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .library-list .metric-choice { min-height:42px; }
    .result-list { display:grid; gap:12px; }
    .result-row { padding:14px; border:1px solid var(--line); border-radius:8px; background:linear-gradient(180deg,#ffffff,#fbfdfc); }
    .result-row-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .result-row-title strong { font-size:16px; color:var(--ink); }
    .result-row-title span { color:var(--muted); font-size:13px; font-weight:800; }
    .result-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .record-section h4 small { color:var(--muted); font-weight:700; }
    .site-upgrade-note { margin-top:10px; color:var(--muted); font-size:13px; }
    .dashboard-shell-v22 { min-height:100vh; background:#eef3f1; }
    .dashboard-shell-v22 main, .dashboard-shell-v22 .bar { width:auto; margin:0; }
    .app-shell-v22 { min-height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); }
    .sidebar-v22 { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:18px; padding:20px 16px; border-right:1px solid rgba(204,218,214,.9); background:#10211e; color:#eaf3ef; }
    .side-brand-v22 { min-height:52px; display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; }
    .side-brand-v22 span { width:38px; height:38px; display:grid; place-items:center; border-radius:8px; background:#dbe8df; color:#10211e; font-weight:900; }
    .side-brand-v22 strong { font-size:15px; line-height:1.25; }
    .sidebar-v22 nav { display:grid; gap:6px; }
    .sidebar-v22 nav a { min-height:42px; justify-content:flex-start; padding:0 12px; border:1px solid transparent; border-radius:8px; color:#b9c9c3; background:transparent; }
    .sidebar-v22 nav a:hover { border-color:rgba(255,255,255,.12); background:rgba(255,255,255,.08); color:#fff; }
    .side-foot-v22 { margin-top:auto; display:grid; gap:8px; }
    .side-foot-v22 a { min-height:36px; display:flex; align-items:center; padding:0 10px; border:1px solid rgba(255,255,255,.12); border-radius:8px; color:#dce8e3; }
    .workspace-v22 { min-width:0; }
    .topbar-v22 { position:sticky; top:0; z-index:20; min-height:82px; display:grid; grid-template-columns:minmax(260px,1fr) minmax(180px,340px) auto; gap:16px; align-items:center; padding:14px 24px; border-bottom:1px solid rgba(204,218,214,.9); background:rgba(247,250,248,.92); backdrop-filter:blur(16px); }
    .topbar-v22 h1 { margin:3px 0 0; font-size:21px; line-height:1.2; }
    .global-search-v22 { min-width:0; margin:0; display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:900; }
    .global-search-v22 input { min-height:42px; border-radius:8px; background:#fff; }
    .search-field-v22 { position:relative; min-width:0; display:grid; }
    .search-field-v22 input { min-width:0; }
    .search-field-v22 input { padding-right:46px; }
    .search-field-v22 button { position:absolute; right:5px; top:5px; width:32px; height:32px; padding:0; border-radius:8px; border:1px solid #cbded7; background:#eef6f2; color:var(--green); font-weight:900; }
    .top-actions-v22 { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
    .top-actions-v22 a, .top-actions-v22 button, .card-actions-v22 a, .task-row-v22 a, .task-row-v22 button, .section-head-v22 > a, .gangue-summary-v22 a { min-height:38px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid #cbded7; border-radius:8px; background:#fff; color:var(--green); font-size:13px; font-weight:900; box-shadow:none; }
    .top-actions-v22 button { background:var(--green); color:#fff; border-color:var(--green); }
    .work-main-v22 { padding:24px; }
    .dashboard-section-v22 { scroll-margin-top:100px; margin-bottom:28px; }
    .section-title-v22 { margin:0 0 14px; }
    .section-title-v22 h2 { margin:2px 0 4px; font-size:24px; }
    .section-title-v22 p:not(.eyebrow) { color:var(--muted); font-weight:800; }
    .metric-grid-v22 { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
    .metric-card-v22 { position:relative; min-height:116px; padding:16px; overflow:hidden; border:1px solid rgba(204,218,214,.95); border-radius:8px; background:#fff; box-shadow:0 14px 36px rgba(20,38,35,.06); color:inherit; text-decoration:none; cursor:pointer; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
    .metric-card-v22:hover, .metric-card-v22:focus-visible { transform:translateY(-2px); border-color:#9fc9bc; box-shadow:0 18px 42px rgba(20,38,35,.12); outline:none; }
    .metric-card-v22:before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:#b8c8c3; }
    .metric-card-v22 span { color:var(--muted); font-size:13px; font-weight:900; }
    .metric-card-v22 strong { display:block; margin:10px 0 8px; color:#152522; font-size:32px; line-height:1; }
    .metric-card-v22 small { display:grid; gap:6px; color:var(--muted); font-weight:800; }
    .metric-card-v22 small i { display:block; width:100%; height:6px; overflow:hidden; border-radius:999px; background:#e7efec; }
    .metric-card-v22 small i:before { content:""; display:block; width:var(--p,0%); height:100%; border-radius:999px; background:#3d6f98; }
    .metric-card-v22.danger { background:#fff8f4; border-color:#edc7ba; }
    .metric-card-v22.danger:before { background:#a8422d; }
    .metric-card-v22.danger strong { color:#a8422d; }
    .metric-card-v22.ok, .metric-card-v22.success { background:#f2faf6; border-color:#c7e5d8; }
    .metric-card-v22.ok:before, .metric-card-v22.success:before { background:#337861; }
    .metric-card-v22.ok strong, .metric-card-v22.success strong { color:#337861; }
    .metric-card-v22.info { background:#f3f8fc; border-color:#c8dcef; }
    .metric-card-v22.info:before { background:#3d6f98; }
    .metric-card-v22.info strong { color:#3d6f98; }
    .focus-flash-v39 { animation:focusFlashV39 1.15s ease; }
    @keyframes focusFlashV39 {
      0%, 100% { box-shadow:0 14px 36px rgba(20,38,35,.06); }
      28% { box-shadow:0 0 0 4px rgba(210,139,52,.24), 0 18px 42px rgba(20,38,35,.14); }
    }
    .visual-insights-v22 { margin-bottom:16px; }
    .visual-map-grid-v22 { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:14px; align-items:start; }
    .progress-matrix-v22 { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .progress-matrix-head-v22, .progress-row-v22 { display:grid; grid-template-columns:minmax(160px,1.2fr) minmax(130px,.85fr) minmax(120px,.75fr) 72px 72px; gap:10px; align-items:center; padding:10px 12px; }
    .progress-matrix-head-v22 { background:#f1f7f5; color:var(--muted); font-size:12px; font-weight:900; }
    .progress-row-v22 { min-height:58px; border-top:1px solid var(--line); color:var(--muted); text-decoration:none; font-size:13px; font-weight:850; }
    .progress-row-v22:hover, .progress-row-v22:focus-visible { background:#fff; outline:none; }
    .progress-row-v22 strong { display:grid; gap:3px; min-width:0; color:var(--ink); font-size:14px; }
    .progress-row-v22 strong small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:12px; font-weight:800; }
    .matrix-meter-v22 { display:grid; gap:5px; }
    .matrix-meter-v22 i { height:7px; overflow:hidden; border-radius:999px; background:#e4eeeb; }
    .matrix-meter-v22 i:before { content:""; display:block; width:var(--p,0%); height:100%; border-radius:999px; background:linear-gradient(90deg,#337861,#3d6f98); }
    .matrix-meter-v22 b { color:var(--green); font-size:12px; }
    .matrix-warn-v22 { color:#a8422d; }
    .age-coverage-v22 { display:grid; gap:10px; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .age-coverage-v22 h3 { margin:0; color:var(--green); font-size:17px; }
    .age-heatmap-v23 { display:grid; gap:8px; overflow-x:auto; }
    .heatmap-tools-v49 { min-width:calc(300px + var(--age-cols,3) * 106px); display:flex; align-items:center; gap:8px; padding:10px; border:1px solid #d7e6e0; border-radius:8px; background:#fbfdfc; }
    .heatmap-tools-v49 label { flex:1 1 320px; min-width:220px; display:grid; grid-template-columns:auto minmax(160px,1fr); align-items:center; gap:8px; margin:0; color:var(--muted); font-size:12px; font-weight:900; }
    .heatmap-tools-v49 input { min-height:34px; border-radius:8px; background:#fff; font-size:13px; }
    .heatmap-tools-v49 button { min-height:34px; padding:0 10px; box-shadow:none; font-size:12px; }
    .heatmap-tools-v49 small { margin-left:auto; color:var(--green); font-size:12px; font-weight:900; white-space:nowrap; }
    .heatmap-head-v23, .heatmap-row-v23 { min-width:calc(300px + var(--age-cols,3) * 106px); display:grid; grid-template-columns:300px repeat(var(--age-cols,3), minmax(96px,1fr)); gap:8px; align-items:stretch; }
    .heatmap-head-v23 { color:var(--muted); font-size:12px; font-weight:900; }
    .heatmap-head-v23 span, .heatmap-head-v23 b { min-height:28px; display:flex; align-items:center; }
    .heatmap-row-v23 { text-decoration:none; color:inherit; }
    .heatmap-row-v23 strong { min-width:0; display:grid; gap:3px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .heatmap-row-v23 strong span, .heatmap-row-v23 strong small { min-width:0; overflow:hidden; text-overflow:ellipsis; }
    .heatmap-row-v23 strong span { color:var(--ink); font-size:13px; white-space:normal; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
    .heatmap-row-v23 strong small { color:var(--muted); font-size:11px; }
    .heat-cell-v23 { min-height:48px; display:grid; align-content:center; gap:3px; padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:#f7faf8; font-style:normal; }
    .heat-cell-v23 span { color:var(--muted); font-size:12px; font-weight:900; }
    .heat-cell-v23 small { color:var(--muted); font-size:10px; font-weight:800; }
    .heat-cell-v23.done { border-color:#b8dfce; background:#edf9f3; }
    .heat-cell-v23.done span { color:#337861; }
    .heat-cell-v23.due { border-color:#f0c7ba; background:#fff3ed; }
    .heat-cell-v23.due span { color:#a8422d; }
    .heat-cell-v23.future { border-color:#c8dcef; background:#f1f7fc; }
    .heat-cell-v23.future span { color:#3d6f98; }
    .heat-cell-v23.unset { border-style:dashed; background:#f4f6f5; opacity:.78; }
    .heat-cell-v23.spacer { visibility:hidden; pointer-events:none; }
    .heatmap-legend-v23 { display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }
    .heatmap-legend-v23 span { min-height:26px; display:inline-flex; align-items:center; gap:6px; padding:0 8px; border-radius:999px; background:#f7faf8; color:var(--muted); font-size:12px; font-weight:900; }
    .heatmap-legend-v23 span:before { content:""; width:8px; height:8px; border-radius:99px; background:#b8c8c3; }
    .heatmap-legend-v23 .done:before { background:#337861; }
    .heatmap-legend-v23 .due:before { background:#a8422d; }
    .heatmap-legend-v23 .future:before { background:#3d6f98; }
    .heatmap-history-v23 { margin-top:2px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .heatmap-history-v23 summary { min-height:38px; display:flex; align-items:center; padding:0 12px; cursor:pointer; color:var(--green); font-size:13px; font-weight:900; }
    .heatmap-history-list-v23 { display:grid; gap:8px; padding:0 8px 8px; }
    .heatmap-empty-v49 { min-width:calc(300px + var(--age-cols,3) * 106px); margin:0; }
    .overview-grid-v22 { display:grid; grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr); gap:16px; margin-bottom:16px; align-items:start; }
    .overview-grid-v22.compact { grid-template-columns:minmax(360px,.86fr) minmax(0,1.14fr); }
    .dashboard-card-v22 { padding:18px; border:1px solid rgba(204,218,214,.95); border-radius:8px; background:#fff; box-shadow:0 14px 38px rgba(20,38,35,.065); }
    .section-head-v22 { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
    .section-head-v22 h2 { margin:1px 0 4px; font-size:20px; }
    .section-head-v22 p:not(.eyebrow) { color:var(--muted); font-weight:800; line-height:1.55; }
    .empty-v22 { padding:14px; border:1px dashed #ccdcd7; border-radius:8px; background:#f8fbfa; color:var(--muted); font-weight:800; }
    .task-table-v22 { display:grid; gap:7px; }
    .task-row-v22 { display:grid; grid-template-columns:112px minmax(150px,1.2fr) minmax(120px,.9fr) 118px 92px 70px; gap:10px; align-items:center; min-height:44px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; color:var(--muted); font-size:13px; font-weight:800; }
    .task-row-v22.head { min-height:34px; background:transparent; border:0; color:#6d7c7b; font-size:12px; }
    .task-bulk-form-v48b { margin:10px 0 12px; padding:0; border:0; background:transparent; box-shadow:none; }
    .task-bulk-form-v48b button { box-shadow:none; }
    .task-row-v22 strong { color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .task-row-v22 em { display:inline-flex; justify-content:center; min-height:28px; align-items:center; padding:0 8px; border-radius:999px; background:#eef5f2; color:var(--green); font-style:normal; font-size:12px; }
    .status-pill-v22.status-completed { background:#e7f4ee; color:#337861; }
    .status-pill-v22.status-overdue { background:#ffe6da; color:#a8422d; }
    .status-pill-v22.status-today { background:#fff0cf; color:#8a5800; }
    .status-pill-v22.status-upcoming { background:#edf4fb; color:#3d6f98; }
    .task-row-v22.overdue { border-color:#edc7ba; background:#fff8f4; }
    .task-row-v22.overdue em { background:#ffe6da; color:#a8422d; }
    .task-row-v22.today { border-color:#efd6ad; background:#fffaf0; }
    .task-row-v22.today em { background:#fff0cf; color:#8a5800; }
    .task-row-v22.upcoming em { background:#edf4fb; color:#3d6f98; }
    .task-row-v22.completed { border-color:#c7e5d8; background:#f6fbf8; opacity:.88; }
    .task-row-v22.completed em { background:#e7f4ee; color:#337861; }
    .task-action-form-v22 { margin:0; }
    .filter-v22 { display:flex; align-items:center; gap:8px; margin:0; color:var(--muted); font-size:12px; font-weight:900; }
    .chart-filter-v22 { padding:10px; border:1px solid #cbded7; border-radius:8px; background:#f8fbfa; }
    .filter-v22 select { min-height:38px; min-width:160px; background:#fff; }
    .chart-filter-v22 select { min-width:220px; font-weight:900; color:var(--green); }
    .trend-chart-v22 { display:grid; gap:11px; }
    .chart-current-v22 { margin:0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid #d7e6e0; border-radius:8px; background:#f8fbfa; color:var(--green); font-size:13px; font-weight:900; }
    .chart-current-v22 select { min-height:34px; min-width:160px; padding:0 34px 0 10px; border:1px solid #cbded7; border-radius:8px; background:#fff; color:var(--ink); font:inherit; font-size:13px; }
    .chart-compare-v251 { display:grid; gap:12px; }
    .chart-toolbar-v251 { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px; border:1px solid #d7e6e0; border-radius:8px; background:#fbfdfc; color:var(--muted); font-size:12px; font-weight:900; }
    .chart-toolbar-actions-v310 { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    .chart-mini-action-v310 { min-height:30px; padding:0 9px; box-shadow:none; font-size:12px; }
    .chart-version-v49 { min-height:30px; display:inline-flex; align-items:center; gap:6px; margin:0; padding:0 9px; border:1px solid #d7e6e0; border-radius:999px; background:#fff; color:var(--muted); font-size:12px; font-weight:900; }
    .chart-version-v49:has(input:checked) { border-color:#bcd9ce; background:#eef8f3; color:var(--green); }
    .chart-version-v49 input { width:14px; min-height:14px; margin:0; accent-color:var(--green); }
    .chart-expand-v251 { min-height:32px; padding:0 10px; box-shadow:none; }
    .chart-selector-v49 { border:1px solid #d7e6e0; border-radius:8px; background:#fff; overflow:hidden; }
    .chart-selector-v49 summary { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 12px; cursor:pointer; list-style:none; color:var(--green); font-size:13px; font-weight:900; }
    .chart-selector-v49 summary::-webkit-details-marker { display:none; }
    .chart-selector-v49 summary:after { content:""; width:8px; height:8px; flex:0 0 auto; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .16s ease; }
    .chart-selector-v49[open] summary:after { transform:rotate(225deg) translate(-2px,-1px); }
    .chart-selector-v49 summary small { margin-left:auto; color:var(--muted); font-size:12px; font-weight:800; }
    .chart-selector-tools-v49 { display:flex; gap:8px; padding:0 10px 10px; }
    .chart-selector-tools-v49 input { flex:1 1 auto; min-width:180px; min-height:34px; border-radius:8px; background:#fbfdfc; font-size:13px; }
    .chart-selector-tools-v49 button { min-height:34px; padding:0 10px; box-shadow:none; font-size:12px; }
    .chart-block-picker-v310 { display:flex; gap:7px; overflow-x:auto; padding:0 10px 10px; }
    .chart-block-picker-v310 label { min-height:34px; max-width:220px; display:inline-flex; align-items:center; gap:7px; flex:0 0 auto; padding:0 10px; border:1px solid #d7e6e0; border-radius:999px; background:#fff; color:var(--muted); font-size:12px; font-weight:900; cursor:pointer; }
    .chart-block-picker-v310 label:has(input:checked) { border-color:#bcd9ce; background:#eef8f3; color:var(--green); }
    .chart-block-picker-v310 input { width:16px; min-height:16px; margin:0; accent-color:var(--green); }
    .chart-block-picker-v310 span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .chart-selection-empty-v310 { margin:0; }
    .chart-canvas-v251 { display:grid; grid-template-columns:58px minmax(0,1fr); gap:10px; align-items:stretch; }
    .chart-canvas-v251 { cursor:zoom-in; }
    .chart-scale-v251 { height:248px; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; padding:6px 0 22px; color:var(--muted); font-size:11px; font-weight:900; }
    .bar-chart-v23 { min-height:248px; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(132px,1fr); gap:12px; align-items:end; overflow-x:auto; padding:8px 4px 2px; }
    .chart-bars-v251 { background:linear-gradient(to bottom, transparent 0, transparent 24%, rgba(211,228,222,.75) 24.5%, transparent 25%, transparent 49%, rgba(211,228,222,.75) 49.5%, transparent 50%, transparent 74%, rgba(211,228,222,.75) 74.5%, transparent 75%); border-radius:8px; }
    .bar-group-v23 { min-width:132px; display:grid; grid-template-rows:180px auto auto; gap:9px; }
    .bar-group-v23[hidden] { display:none !important; }
    .bar-columns-v23 { height:180px; display:flex; align-items:end; justify-content:center; gap:8px; padding:8px 8px 0; border-bottom:1px solid #d8e6e0; background:linear-gradient(180deg,#fbfdfc,#fff); border-radius:8px 8px 0 0; }
    .column-v23 { width:28px; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:5px; color:var(--muted); font-style:normal; font-size:10px; font-weight:900; }
    .column-v23 i { width:100%; height:var(--h,0%); min-height:8px; border-radius:8px 8px 4px 4px; background:#337861; box-shadow:0 8px 16px rgba(51,120,97,.16); }
    .column-v23.age-1 i { background:#6f5aaa; box-shadow:0 8px 16px rgba(111,90,170,.16); }
    .column-v23.age-7 i { background:#3d6f98; box-shadow:0 8px 16px rgba(61,111,152,.16); }
    .column-v23.age-28 i { background:#d28b34; box-shadow:0 8px 16px rgba(210,139,52,.16); }
    .column-v23 b { max-width:48px; min-height:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#172624; font-size:10px; line-height:1.2; }
    .chart-bars-v251 .column-v23 b { display:none; }
    .column-v23 em { font-style:normal; color:var(--muted); }
    .bar-group-v23 > strong { min-width:0; display:grid; gap:2px; color:var(--ink); font-size:12px; text-align:center; }
    .bar-group-v23 > strong span, .bar-group-v23 > strong small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .bar-group-v23 > strong small { color:var(--muted); font-size:10px; font-weight:900; }
    .chart-values-v251 { display:flex; flex-wrap:wrap; justify-content:center; gap:4px; }
    .chart-values-v251 span { min-height:24px; display:inline-flex; align-items:center; gap:4px; padding:0 6px; border-radius:999px; background:#e7f4ee; color:#337861; font-size:10px; font-weight:900; white-space:nowrap; }
    .chart-values-v251 .age-1 { background:#f0edfb; color:#6f5aaa; }
    .chart-values-v251 .age-7 { background:#edf4fb; color:#3d6f98; }
    .chart-values-v251 .age-28 { background:#fff4df; color:#9d6618; }
    .chart-values-v251 b, .chart-values-v251 em { font-style:normal; }
    .bar-chart-28d-v23 .bar-group-v23 { grid-template-rows:170px auto; }
    .bar-chart-28d-v23 .bar-columns-v23 { height:170px; }
    .bar-group-v23.single .column-v23 { width:34px; }
    html.chart-modal-open-v251, .chart-modal-open-v251 { overflow:hidden; overscroll-behavior:contain; }
    .chart-modal-v251 { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:22px; background:rgba(11,23,21,.58); backdrop-filter:blur(6px); }
    .chart-modal-v251.active { display:flex; }
    .chart-modal-panel-v251 { width:min(1120px,96vw); max-height:92vh; overflow:auto; padding:18px; border-radius:10px; background:#fff; box-shadow:0 24px 60px rgba(12,35,30,.28); }
    .chart-modal-panel-v251 > button { float:right; min-height:34px; padding:0 12px; border:1px solid #d7e6e0; border-radius:8px; background:#f8fbfa; color:var(--green); font-weight:900; }
    .chart-modal-panel-v251 > h2 { margin:0 82px 12px 0; font-size:18px; line-height:1.3; }
    .chart-modal-v251 .chart-compare-v251 { clear:both; padding-top:8px; }
    .chart-modal-v251 .chart-toolbar-v251 { margin-right:72px; }
    .chart-modal-v251 .chart-canvas-v251 { grid-template-columns:72px minmax(0,1fr); cursor:default; }
    .chart-modal-v251 .chart-scale-v251 { height:430px; }
    .chart-modal-v251 .bar-chart-v23 { min-height:430px; grid-auto-columns:minmax(168px,1fr); gap:18px; }
    .chart-modal-v251 .bar-group-v23 { min-width:180px; grid-template-rows:340px auto auto; }
    .chart-modal-v251 .bar-columns-v23 { height:340px; gap:12px; }
    .chart-modal-v251 .column-v23 { width:38px; font-size:12px; }
    .chart-modal-v251 .chart-bars-v251 .column-v23 b { display:none; }
    .chart-modal-v251 .chart-values-v251 { gap:6px; }
    .chart-modal-v251 .chart-values-v251 span { min-height:30px; padding:0 9px; font-size:12px; }
    .data-health-v23 { margin-bottom:16px; }
    .data-health-v23 .section-head-v22 > strong { min-height:34px; display:inline-flex; align-items:center; padding:0 10px; border-radius:999px; background:#fff8f4; color:#a8422d; font-size:13px; }
    .health-grid-v23 { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
    .health-card-v23 { min-height:126px; display:grid; gap:6px; align-content:start; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .health-card-v23.todo { border-color:#efd6ad; background:#fffaf0; }
    .health-card-v23.ok { border-color:#c7e5d8; background:#f2faf6; }
    .health-card-v23 span { color:var(--muted); font-size:12px; font-weight:900; }
    .health-card-v23 b { color:var(--ink); font-size:26px; line-height:1; }
    .health-card-v23.todo b { color:#a8422d; }
    .health-card-v23 em { color:#337861; font-style:normal; font-weight:900; }
    .health-card-v23 div { display:grid; gap:4px; }
    .health-card-v23 a, .health-card-v23 small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--green); font-size:11px; font-weight:900; }
    .mail-reminder-v251 { margin-top:14px; display:grid; gap:8px; padding:12px; border:1px solid #d7e6e0; border-radius:8px; background:#fbfdfc; }
    .mail-reminder-v251 strong { display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--ink); }
    .mail-reminder-v251 b { padding:4px 8px; border-radius:999px; background:#edf4fb; color:#3d6f98; font-size:12px; }
    .mail-reminder-v251 b.ok { background:#e7f4ee; color:#337861; }
    .mail-reminder-v251 b.warn { background:#fff0cf; color:#8a5800; }
    .mail-reminder-v251 p, .mail-reminder-v251 small { margin:0; color:var(--muted); font-size:12px; font-weight:850; }
    .mail-reminder-v251 button { justify-self:start; }
    .anomaly-list-v22 { display:grid; gap:9px; }
    .anomaly-form-v22 { display:grid; gap:10px; }
    .anomaly-hint-v22 { color:var(--muted); font-size:13px; font-weight:800; }
    .anomaly-v22 { position:relative; touch-action:pan-y; padding:11px 96px 11px 12px; border:1px solid var(--line); border-left-width:4px; border-radius:8px; background:#fbfdfc; transition:transform .16s ease, opacity .16s ease, background .16s ease; }
    .anomaly-v22.swiping { transition:none; }
    .anomaly-v22.dismiss-ready { background:#fff1eb; }
    .anomaly-v22.dismissing { transform:translateX(-110%); opacity:0; }
    .anomaly-v22 span { display:block; color:var(--ink); font-weight:900; }
    .anomaly-v22 p { color:var(--muted); font-size:13px; font-weight:800; line-height:1.45; }
    .anomaly-v22 form { position:absolute; right:10px; top:10px; }
    .anomaly-delete-button-v22 { min-height:32px; padding:0 12px; border:1px solid #ead2cb; border-radius:8px; background:#fff8f4; color:#a8422d; font-size:12px; font-weight:900; box-shadow:none; }
    .swipe-hint-v22 { position:absolute; right:12px; bottom:9px; color:#a8422d; font-size:11px; font-style:normal; font-weight:900; opacity:.72; }
    .anomaly-filter-v49 { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 10px; }
    .anomaly-filter-v49 a { min-height:30px; display:inline-flex; align-items:center; padding:0 10px; border:1px solid #d7e6e0; border-radius:999px; background:#fff; color:var(--green); text-decoration:none; font-size:12px; font-weight:900; }
    .supplemental-notes-v49 { margin-top:10px; border:1px solid #d7e6e0; border-radius:8px; background:#fbfdfc; }
    .supplemental-notes-v49 summary { min-height:40px; display:flex; align-items:center; gap:8px; padding:0 12px; cursor:pointer; color:var(--green); font-weight:900; }
    .supplemental-notes-v49 summary small { color:var(--muted); font-size:12px; font-weight:800; }
    .supplemental-notes-v49 div { display:grid; gap:6px; padding:0 12px 12px; }
    .supplemental-notes-v49 a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 10px; border-radius:8px; background:#fff; color:inherit; text-decoration:none; }
    .supplemental-notes-v49 strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .supplemental-notes-v49 span { color:var(--muted); font-size:12px; font-weight:800; }
    .anomaly-v22.critical { border-left-color:#a8422d; background:#fff8f4; }
    .anomaly-v22.warning { border-left-color:#d28b34; background:#fffaf0; }
    .anomaly-v22.confirm { border-left-color:#3d6f98; background:#f3f8fc; }
    .anomaly-v22.tip { border-left-color:#b7c7c3; }
    .gangue-overview-grid-v22, .recent-block-grid-v22 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
    .gangue-summary-v22, .research-block-v22 { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }
    .gangue-summary-v22 strong, .research-block-v22 h3 { color:var(--green); font-size:17px; }
    .gangue-summary-v22 span, .research-block-v22 p, .research-block-v22 small, .block-facts-v22 span { color:var(--muted); font-size:13px; font-weight:800; }
    .gangue-summary-v22 div, .card-actions-v22 { display:flex; gap:8px; flex-wrap:wrap; }
    .config-chips-v22 { display:flex; flex-wrap:wrap; gap:6px; }
    .config-chips-v22 span { min-height:26px; display:inline-flex; align-items:center; padding:0 8px; border:1px solid #d8e6e0; border-radius:999px; background:#fff; color:#44615c; font-size:12px; font-weight:900; }
    .block-facts-v22 { display:grid; gap:5px; }
    .strength-strip-v22 { display:grid; gap:7px; }
    .strength-bar-v22 { display:grid; grid-template-columns:34px minmax(0,1fr) minmax(92px,auto); gap:8px; align-items:center; color:var(--muted); font-size:12px; font-weight:900; }
    .strength-bar-v22 i { height:9px; overflow:hidden; border-radius:999px; background:#e8efed; }
    .strength-bar-v22 i:before { content:""; display:block; width:var(--w,0%); height:100%; border-radius:999px; background:#b8c8c3; }
    .strength-bar-v22.filled.age-3 i:before { background:#337861; }
    .strength-bar-v22.filled.age-7 i:before { background:#3d6f98; }
    .strength-bar-v22.filled.age-28 i:before { background:#d28b34; }
    .strength-bar-v22.due i:before { background:#d28b34; }
    .strength-bar-v22.upcoming i:before { background:#8eb7d6; }
    .strength-bar-v22.due em { color:#8a5800; }
    .strength-bar-v22.upcoming em { color:#3d6f98; }
    .strength-bar-v22 em { color:#314643; font-style:normal; text-align:right; }
    .age-progress-v22 { display:flex; gap:6px; flex-wrap:wrap; }
    .age-progress-v22 span { min-height:28px; display:inline-flex; align-items:center; padding:0 8px; border-radius:999px; background:#eef5f2; color:var(--muted); font-size:12px; font-weight:900; }
    .age-progress-v22 span.done { background:#e7f4ee; color:#337861; }
    .age-progress-v22 span.due { background:#fff0cf; color:#8a5800; }
    .age-progress-v22 span.upcoming { background:#edf4fb; color:#3d6f98; }
    .calendar-kpis { gap:8px; }
    .calendar-kpis button { min-height:68px; padding:10px 12px; border-left-width:4px; }
    .calendar-kpis .danger { border-color:#edc7ba; border-left-color:#a8422d; background:#fff8f4; }
    .calendar-kpis .today { border-color:#efd6ad; border-left-color:#d28b34; background:#fffaf0; }
    .calendar-kpis .future { border-color:#c8dcef; border-left-color:#3d6f98; background:#f3f8fc; }
    .calendar-kpis .done { border-color:#c7e5d8; border-left-color:#337861; background:#f2faf6; }
    .calendar-kpis .today b { color:#d28b34; }
    .calendar-kpis .future b { color:#3d6f98; }
    .calendar-kpis .done b { color:#337861; }
    .calendar-filter-status { margin:8px 0 0; padding:9px 11px; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; color:var(--muted); font-size:12px; font-weight:900; }
    .calendar-filter-status button { min-height:30px; padding:0 10px; border-radius:8px; box-shadow:none; }
    .calendar-filter-empty { margin:0; padding:14px; border:1px dashed var(--line); border-radius:8px; background:#fbfdfc; color:var(--muted); font-weight:900; text-align:center; }
    #calendar [data-calendar-item].calendar-filter-hidden { display:none; }
    #calendar [data-calendar-day].calendar-filter-empty-day { opacity:.36; }
    #calendar [data-calendar-month].calendar-filter-empty-month { display:none; }
    .calendar-collapse-v22 { padding:0; overflow:hidden; }
    .calendar-collapse-v22 > summary, .create-panel-v22 > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; }
    .calendar-collapse-v22 > summary::-webkit-details-marker, .create-panel-v22 > summary::-webkit-details-marker { display:none; }
    .calendar-collapse-v22 summary span, .create-panel-v22 summary span { display:grid; gap:4px; }
    .calendar-collapse-v22 summary b, .create-panel-v22 summary b { color:var(--green); font-size:18px; }
    .calendar-collapse-v22 summary em, .create-panel-v22 summary em { color:var(--muted); font-style:normal; font-size:13px; font-weight:800; }
    .calendar-collapse-v22 summary strong, .create-panel-v22 summary strong { color:var(--green); font-size:13px; }
    .calendar-inner-v22 { padding:0 18px 18px; }
    .create-panel-v22 { margin-bottom:14px; }
    .create-panel-v22 form { padding:0 18px 18px; }
    body.record-drawer-open { overflow:hidden; }
    .record-details[open] { position:fixed; z-index:55; inset:0; pointer-events:none; }
    .record-details[open] .record-drawer-body { position:absolute; z-index:2; top:0; right:0; bottom:0; width:min(920px, calc(100vw - 24px)); overflow:auto; pointer-events:auto; border-left:1px solid var(--line); box-shadow:-28px 0 60px rgba(16,33,30,.22); }
    .record-details[open]:before { content:""; position:absolute; z-index:1; inset:0; pointer-events:auto; background:rgba(16,33,30,.34); }
    .record-details[open] summary { display:none; }
    .drawer-top-v22 { position:sticky; top:0; z-index:3; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--line); background:#fff; }
    .drawer-top-v22 strong { color:var(--green); }
    .drawer-top-v22 button { min-height:34px; padding:0 10px; box-shadow:none; }
    .metric-result-card-v22 { display:grid; gap:10px; margin-top:12px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .metric-result-head-v22 { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
    .metric-result-head-v22 strong { margin-right:auto; color:var(--green); }
    .source-pill-v22 { min-height:38px; display:flex; align-items:center; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:#f8fbfa; color:var(--muted); font-weight:900; }
    .abnormal-badge-v33 { display:inline-flex; align-items:center; min-height:22px; padding:0 8px; border-radius:999px; background:#fff0d8; color:#9b5a00; border:1px solid #f1c27a; font-size:12px; font-style:normal; font-weight:900; vertical-align:middle; }
    .result-flag-v25 { min-height:42px; display:flex; align-items:center; gap:8px; padding:0 11px; border:1px solid var(--line); border-radius:8px; background:#fffaf0; color:#8a5800; font-weight:900; }
    .result-flag-v25 input { width:18px; min-height:18px; margin:0; accent-color:#d28b34; }
    .specimen-table-v22 { display:grid; gap:7px; overflow-x:auto; }
    .specimen-row-v22 { min-width:1080px; display:grid; grid-template-columns:74px minmax(108px,.85fr) minmax(108px,.85fr) minmax(106px,.8fr) minmax(150px,1fr) minmax(138px,.9fr) minmax(132px,.9fr) minmax(148px,1fr) 52px; gap:7px; align-items:center; }
    .specimen-row-v22.head { color:var(--muted); font-size:12px; font-weight:900; }
    .specimen-row-v22 > span:first-child { color:var(--green); font-weight:900; }
    .specimen-row-v22 [data-strength-mpa] { background:#f3f8f6; color:var(--green); font-weight:900; }
    .remove-specimen-v33 { width:100%; min-height:38px; padding:0; border-color:#ead4d4; background:#fff7f7; color:#a44848; box-shadow:none; }
    .remove-specimen-v33:hover { border-color:#d9a9a9; color:#893838; transform:none; }
    .add-specimen-v32 { justify-self:start; margin-top:4px; }
    .specimen-summary-v22 { min-width:820px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px; border:1px solid #d8e6e0; border-radius:8px; background:#f8fbfa; }
    .specimen-summary-v22 span { min-height:30px; display:inline-flex; align-items:center; gap:6px; padding:0 9px; border-radius:999px; background:#fff; color:var(--muted); font-size:12px; font-weight:900; }
    .specimen-summary-v22 b { color:var(--green); }
    .specimen-summary-v22 em { color:#8a5800; font-size:12px; font-style:normal; font-weight:900; }
    .specimen-summary-v22.warn { border-color:#efd6ad; background:#fffaf0; }
    body.lab-lightbox-open-v34 { overflow:hidden; }
    .lab-lightbox-v22 { position:fixed; z-index:100; inset:0; display:none; place-items:center; padding:24px; background:rgba(12,24,22,.86); }
    .lab-lightbox-v22.active { display:grid; }
    .lab-lightbox-v22 img { max-width:min(1180px,96vw); max-height:82vh; border-radius:8px; background:#fff; object-fit:contain; cursor:pointer; }
    .lab-lightbox-actions-v22 { position:fixed; top:18px; right:18px; display:flex; gap:8px; }
    .lab-lightbox-actions-v22 a, .lab-lightbox-actions-v22 button { min-height:40px; display:inline-flex; align-items:center; padding:0 12px; border:1px solid rgba(255,255,255,.28); border-radius:8px; background:#fff; color:#10211e; font-weight:900; box-shadow:none; }
    .lab-lightbox-nav-v22 { position:fixed; top:50%; width:48px; min-height:64px; display:grid; place-items:center; transform:translateY(-50%); border:1px solid rgba(255,255,255,.26); border-radius:8px; background:rgba(255,255,255,.94); color:#10211e; font-size:36px; font-weight:900; line-height:1; box-shadow:0 18px 48px rgba(0,0,0,.25); }
    .lab-lightbox-nav-v22.prev { left:18px; }
    .lab-lightbox-nav-v22.next { right:18px; }
    .lab-lightbox-nav-v22:disabled { opacity:.38; cursor:not-allowed; }
    .lab-lightbox-counter-v22 { position:fixed; left:50%; bottom:18px; min-height:36px; display:flex; align-items:center; padding:0 12px; transform:translateX(-50%); border-radius:999px; background:rgba(255,255,255,.94); color:#10211e; font-size:13px; font-weight:900; }
    #material-library .panel { margin-bottom:0; }
    @media (max-width:1320px) { .topbar-v22 { grid-template-columns:minmax(260px,1fr) minmax(0,360px); } .top-actions-v22 { grid-column:1/-1; justify-content:flex-start; } .metric-grid-v22 { grid-template-columns:repeat(3,minmax(0,1fr)); } .overview-grid-v22, .overview-grid-v22.compact { grid-template-columns:1fr; } }
    @media (max-width:980px) { .app-shell-v22 { grid-template-columns:1fr; } .sidebar-v22 { position:static; height:auto; flex-direction:row; align-items:center; overflow:auto; } .sidebar-v22 nav { display:flex; flex-wrap:wrap; } .side-foot-v22 { margin-left:auto; margin-top:0; display:flex; } .lab-overview { grid-template-columns:1fr; } .visual-map-grid-v22 { grid-template-columns:1fr; } .result-grid, .metric-options, .ratio-grid, .stat-strip, .calendar-kpis, .calendar-agenda-list, .template-weight-grid, .health-grid-v23, .block-filter-panel-v31, .lab-image-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); } .material-groups, .library-list { grid-template-columns:1fr; } .gangue-overview-grid-v22, .recent-block-grid-v22 { grid-template-columns:repeat(2,minmax(0,1fr)); } .task-row-v22 { grid-template-columns:1fr 1fr; } .task-row-v22.head { display:none; } }
    @media (max-width:760px) { .topbar-v22 { grid-template-columns:1fr; } .top-actions-v22 { grid-column:auto; } }
    @media (max-width:640px) { .work-main-v22 { padding:14px; } .sidebar-v22 { padding:12px; } .topbar-v22 { padding:12px 14px; } .record-details[open] .record-drawer-body { width:100%; border-left:0; } .metric-grid-v22, .gangue-overview-grid-v22, .recent-block-grid-v22 { grid-template-columns:1fr; } .workspace-hero { min-height:auto; } .progress-matrix-head-v22 { display:none; } .progress-row-v22 { grid-template-columns:1fr 1fr; align-items:start; } .progress-row-v22 strong, .matrix-meter-v22 { grid-column:1/-1; } .coverage-row-v22 { grid-template-columns:38px minmax(0,1fr) 48px; } .coverage-row-v22 em { grid-column:2/-1; text-align:left; } .gangue-folder-head, .block-toolbar, .custom-material-row, .lab-upload-grid { grid-template-columns:1fr; } .calendar-agenda-head { flex-direction:column; } .calendar-legend { justify-content:flex-start; } .folder-badges, .archive-actions, .block-actions { justify-content:stretch; } .folder-badges span, .archive-actions .chip-button, .block-actions .export-check, .block-actions button { flex:1; justify-content:center; } .viz-row { grid-template-columns:1fr; gap:5px; } .result-row-title, .gangue-card summary { align-items:flex-start; flex-direction:column; } .record-details summary { grid-template-columns:1fr; align-items:start; } .record-toggle { justify-content:center; } .record-summary-main em { white-space:normal; } .result-grid, .metric-options, .library-list, .material-options, .ratio-grid, .stat-strip, .calendar-kpis, .calendar-agenda-list, .template-weight-grid, .health-grid-v23, .block-filter-panel-v31, .lab-image-filter-panel { grid-template-columns:1fr; } .material-library-item { grid-template-columns:1fr; } .chart-toolbar-v251 { align-items:flex-start; flex-direction:column; } .chart-canvas-v251, .chart-modal-v251 .chart-canvas-v251 { grid-template-columns:1fr; } .chart-scale-v251, .chart-modal-v251 .chart-scale-v251 { display:none; } .chart-modal-v251 { padding:10px; } .chart-modal-panel-v251 { width:100%; max-height:94vh; padding:12px; } .side-brand-v22 strong { white-space:nowrap; } }

    /* vNext UI stabilization */
    html, body { max-width:100%; overflow-x:hidden; }
    .dashboard-shell-v22, .app-shell-v22, .workspace-v22, .work-main-v22,
    .dashboard-card-v22, .block-card, .gangue-folder, .record-drawer-body,
    .record-panel, .record-section, .visual-panel { min-width:0; }
    .app-shell-v22 { grid-template-columns:224px minmax(0,1fr); }
    .sidebar-v22 { gap:14px; }
    .sidebar-v22 nav a, .side-foot-v22 a { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .topbar-v22 { grid-template-columns:minmax(240px,1fr) minmax(240px,420px) auto; }
    .top-actions-v22 { min-width:0; }
    .top-actions-v22 a, .top-actions-v22 button, .chip-button, .record-tabbar button,
    .block-actions button, .archive-actions .chip-button, .calendar-kpis button {
      white-space:normal;
      line-height:1.25;
    }
    .metric-grid-v22 { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
    .metric-card-v22 { min-width:0; }
    .metric-card-v22 span, .metric-card-v22 small { overflow-wrap:anywhere; }
    .overview-grid-v22, .overview-grid-v22.compact { grid-template-columns:minmax(0,1fr); }
    .calendar-kpis { grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); }
    .health-grid-v23 { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
    .gangue-overview-grid-v22, .recent-block-grid-v22 { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
    .block-filter-panel-v31, .lab-image-filter-panel { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
    .block-toolbar { grid-template-columns:minmax(0,1fr) auto auto; }
    .block-head, .gangue-folder-head { align-items:start; }
    .block-title, .block-meta, .folder-badges, .archive-actions, .block-actions { min-width:0; }
    .block-title strong, .gangue-folder-title strong, .record-summary-main strong, .drawer-top-v22 strong {
      min-width:0;
      overflow-wrap:anywhere;
    }
    .calendar-inner-v22, .age-heatmap-v23, .progress-matrix-v22, .task-table-v22,
    .chart-block-picker-v310, .bar-chart-v23 { -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
    .calendar-inner-v22 { overflow-x:auto; }
    .calendar-board { min-width:0; }
    .day-cell { min-width:0; }
    .due-pill, .calendar-task-link-v22 span { overflow-wrap:anywhere; }
    .record-details[open] .record-drawer-body {
      width:min(960px, calc(100vw - 32px));
      max-width:100vw;
      background:#fff;
    }
    .record-tabbar { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .record-tabbar button { flex:0 0 auto; }
    .drawer-top-v22 button { flex:0 0 auto; }
    .specimen-table-v22 { max-width:100%; }
    .specimen-summary-v22 { min-width:0; }
    .anomaly-v22 { min-width:0; padding-right:92px; }

    @media (max-width:1100px) {
      .topbar-v22 { grid-template-columns:minmax(0,1fr) minmax(220px,360px); }
      .top-actions-v22 { grid-column:1/-1; justify-content:flex-start; }
      .app-shell-v22 { grid-template-columns:204px minmax(0,1fr); }
      .sidebar-v22 { padding:16px 12px; }
    }

    @media (max-width:820px) {
      .app-shell-v22 { display:block; }
      .sidebar-v22 {
        position:sticky;
        top:0;
        z-index:35;
        height:auto;
        max-height:none;
        display:grid;
        grid-template-columns:auto minmax(0,1fr);
        align-items:center;
        gap:10px;
        padding:10px 12px;
        border-right:0;
        border-bottom:1px solid rgba(204,218,214,.18);
      }
      .side-brand-v22 { min-height:38px; }
      .side-brand-v22 span { width:32px; height:32px; }
      .side-brand-v22 strong { font-size:14px; white-space:normal; }
      .sidebar-v22 nav {
        min-width:0;
        display:flex;
        flex-wrap:nowrap;
        gap:6px;
        overflow-x:auto;
        padding-bottom:2px;
        -webkit-overflow-scrolling:touch;
      }
      .sidebar-v22 nav a { flex:0 0 auto; min-height:34px; padding:0 10px; font-size:13px; }
      .side-foot-v22 { display:none; }
      .topbar-v22 {
        position:static;
        grid-template-columns:1fr;
        gap:10px;
        min-height:0;
        padding:12px;
      }
      .topbar-v22 h1 { font-size:20px; }
      .top-actions-v22 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
      .top-actions-v22 a, .top-actions-v22 button { width:100%; min-height:40px; padding:8px 10px; }
      .work-main-v22 { padding:12px; }
      .dashboard-section-v22 { scroll-margin-top:94px; margin-bottom:18px; }
      .workspace-hero { padding:16px; }
      .workspace-hero h2 { font-size:24px; }
      .metric-card-v22 { min-height:96px; padding:13px; }
      .dashboard-card-v22 { padding:14px; }
      .section-head-v22 { display:grid; gap:8px; }
      .calendar-inner-v22 { padding:0 12px 14px; }
      .calendar-board { min-width:620px; }
      .record-details[open] .record-drawer-body { width:100vw; inset:0; border-left:0; }
      .drawer-top-v22 { padding:12px; }
      .record-form { padding:0 12px 14px; }
      .record-section { padding:12px; }
      .metric-result-head-v22 { align-items:flex-start; }
      .source-pill-v22, .result-flag-v25 { width:100%; }
      .specimen-table-v22 { display:block; overflow:visible; }
      .specimen-row-v22 {
        min-width:0;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
        align-items:end;
        margin-bottom:8px;
        padding:10px;
        border:1px solid var(--line);
        border-radius:8px;
        background:#fbfdfc;
      }
      .specimen-row-v22.head { display:none; }
      .specimen-row-v22 > span:first-child,
      .specimen-row-v22 > input[name^="sampleNote"],
      .specimen-row-v22 > input[name^="sampleFailureMode"] { grid-column:1/-1; }
      .remove-specimen-v33 { min-height:40px; }
      .specimen-summary-v22 { display:grid; grid-template-columns:1fr; }
      .anomaly-v22 { padding:12px; }
      .anomaly-v22 form { position:static; margin-top:10px; }
      .anomaly-delete-button-v22 { width:100%; }
      .swipe-hint-v22 { display:none; }
    }

    @media (max-width:520px) {
      .top-actions-v22 { grid-template-columns:1fr; }
      .global-search-v22 > label { display:none; }
      .calendar-kpis, .stat-strip, .health-grid-v23, .metric-grid-v22,
      .gangue-overview-grid-v22, .recent-block-grid-v22 { grid-template-columns:1fr; }
      .block-head, .gangue-folder-head, .block-toolbar, .task-checks,
      .result-grid, .record-grid, .metric-options, .ratio-grid, .material-options,
      .template-weight-grid, .lab-upload-grid { grid-template-columns:1fr !important; }
      .block-actions { display:grid; grid-template-columns:1fr; }
      .block-actions .export-check, .block-actions button { width:100%; }
      .record-tabbar { padding:10px 12px; }
      .record-tabbar button { min-height:38px; padding:0 10px; }
      .specimen-row-v22 { grid-template-columns:1fr; }
      .chart-toolbar-v251, .calendar-filter-status { align-items:stretch; flex-direction:column; }
      .calendar-filter-status button { width:100%; }
    }

    /* Final chart clipping guard: keep 28d labels and values visible. */
    .bar-chart-v23,
    .bar-chart-28d-v23 {
      overflow-x:auto;
      overflow-y:visible;
      padding-bottom:22px;
    }
    .bar-chart-28d-v23 .bar-group-v23 {
      min-height:268px;
      height:auto;
      grid-template-rows:170px minmax(76px,auto);
      overflow:visible;
    }
    .bar-chart-28d-v23 .bar-group-v23 > strong {
      min-height:76px;
      overflow:visible;
      white-space:normal;
    }
    .chart-modal-v251 .bar-chart-28d-v23 .bar-group-v23 {
      min-height:456px;
      grid-template-rows:340px minmax(88px,auto);
    }

    /* v4.9 visual polish: calmer lab UI, clearer hierarchy, richer status colors */
    :root {
      --bg:#f6f8f7;
      --surface:#ffffff;
      --soft:#eef4f1;
      --ink:#142125;
      --muted:#657479;
      --line:#d8e2df;
      --green:#2f7a62;
      --blue:#2f6fbd;
      --warn:#b66a17;
      --danger:#b24534;
      --purple:#6f5aaa;
      --shadow:0 14px 34px rgba(18,33,37,.075);
      --shadow-strong:0 22px 60px rgba(18,33,37,.13);
      --focus:0 0 0 3px rgba(47,122,98,.18);
    }

    body {
      background:
        linear-gradient(180deg,#f3f7f5 0,#f6f8f7 280px),
        #f6f8f7;
      color:var(--ink);
      text-rendering:optimizeLegibility;
    }

    input, textarea, select {
      border-color:#d3dfdc;
      background:#fbfdfc;
    }

    input:focus, textarea:focus, select:focus {
      border-color:#82b9a6;
      box-shadow:var(--focus);
    }

    button,
    .top-actions-v22 button {
      background:linear-gradient(180deg,#33866b,#276f59);
      border-color:#276f59;
      box-shadow:0 10px 22px rgba(47,122,98,.18);
    }

    button:hover,
    .top-actions-v22 button:hover {
      filter:saturate(1.05) brightness(.98);
    }

    button.secondary,
    .chip-button,
    .top-actions-v22 a,
    .card-actions-v22 a,
    .task-row-v22 a,
    .task-row-v22 button,
    .section-head-v22 > a,
    .gangue-summary-v22 a {
      background:#ffffff;
      border-color:#cbdad6;
      color:#276f59;
    }

    .dashboard-shell-v22 {
      background:#f6f8f7;
    }

    .sidebar-v22 {
      background:linear-gradient(180deg,#142622 0,#0f1d1b 100%);
      border-right-color:rgba(183,205,198,.28);
      box-shadow:10px 0 34px rgba(16,33,30,.08);
    }

    .side-brand-v22 span {
      background:#e4eee8;
      color:#142622;
    }

    .sidebar-v22 nav a {
      border-radius:8px;
      color:#c1d2cb;
      transition:background .16s ease, color .16s ease, border-color .16s ease;
    }

    .sidebar-v22 nav a:hover,
    .sidebar-v22 nav a:focus-visible,
    .sidebar-v22 nav a[aria-current="page"] {
      border-color:rgba(255,255,255,.18);
      background:rgba(255,255,255,.1);
      color:#ffffff;
      outline:none;
    }

    .topbar-v22 {
      border-bottom-color:rgba(198,215,210,.88);
      background:rgba(250,252,251,.9);
      box-shadow:0 10px 28px rgba(18,33,37,.055);
    }

    .topbar-v22 h1 {
      letter-spacing:0;
    }

    .global-search-v22 input {
      background:#ffffff;
      border-color:#d2dfdb;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.86);
    }

    .search-field-v22 button {
      background:#eef6f2;
      border-color:#c5d9d1;
      box-shadow:none;
    }

    .work-main-v22 {
      padding:26px;
    }

    .dashboard-card-v22,
    .visual-panel,
    .panel,
    .gangue-folder,
    .block-card,
    .gangue-card,
    .record-section,
    .result-row,
    .lab-photo {
      border-color:rgba(206,220,216,.95);
      background:#ffffff;
      box-shadow:var(--shadow);
    }

    .dashboard-card-v22 {
      border-radius:10px;
    }

    .section-head-v22 h2,
    .section-title-v22 h2 {
      color:#102024;
      letter-spacing:0;
    }

    .section-head-v22 p:not(.eyebrow),
    .section-title-v22 p:not(.eyebrow) {
      color:#66767a;
      font-weight:750;
    }

    .eyebrow {
      color:#2f7a62;
      letter-spacing:.02em;
    }

    .metric-grid-v22 {
      gap:14px;
    }

    .metric-card-v22 {
      min-height:118px;
      border-color:#d7e4df;
      border-radius:10px;
      background:linear-gradient(180deg,#ffffff,#fbfdfc);
      box-shadow:0 12px 30px rgba(18,33,37,.065);
    }

    .metric-card-v22:hover,
    .metric-card-v22:focus-visible {
      transform:translateY(-2px);
      border-color:#a8cfc1;
      box-shadow:var(--shadow-strong);
    }

    .metric-card-v22:before {
      width:6px;
      border-radius:10px 0 0 10px;
    }

    .metric-card-v22.neutral:before { background:#8fa4a5; }
    .metric-card-v22.ok:before,
    .metric-card-v22.success:before { background:#2f7a62; }
    .metric-card-v22.info:before { background:#2f6fbd; }
    .metric-card-v22.danger:before { background:#b24534; }

    .metric-card-v22 strong {
      color:#142125;
      font-size:34px;
    }

    .metric-card-v22.info {
      background:linear-gradient(180deg,#ffffff,#f4f8fd);
      border-color:#c9dbee;
    }

    .metric-card-v22.ok,
    .metric-card-v22.success {
      background:linear-gradient(180deg,#ffffff,#f1f8f4);
      border-color:#c7e3d5;
    }

    .metric-card-v22.danger {
      background:linear-gradient(180deg,#ffffff,#fff5f1);
      border-color:#edc6bb;
    }

    .task-row-v22 {
      border-color:#d9e4e0;
      background:#ffffff;
      box-shadow:0 8px 20px rgba(18,33,37,.04);
    }

    .task-row-v22.head {
      box-shadow:none;
      color:#5e6f73;
    }

    .task-row-v22.today {
      border-color:#e7c994;
      background:#fffaf0;
    }

    .task-row-v22.overdue {
      border-color:#e6bdb3;
      background:#fff5f1;
    }

    .task-row-v22.completed {
      border-color:#c6dfd2;
      background:#f3faf6;
    }

    .status-pill-v22.status-today,
    .task-row-v22.today em {
      background:#fff1d6;
      color:#9a5a12;
    }

    .status-pill-v22.status-upcoming,
    .task-row-v22.upcoming em {
      background:#eaf3ff;
      color:#2f6fbd;
    }

    .status-pill-v22.status-overdue,
    .task-row-v22.overdue em {
      background:#ffe4dc;
      color:#b24534;
    }

    .status-pill-v22.status-completed,
    .task-row-v22.completed em {
      background:#e5f4ec;
      color:#2f7a62;
    }

    .age-heatmap-v23 {
      gap:10px;
    }

    .heatmap-head-v23 {
      color:#5f7276;
    }

    .heatmap-row-v23 strong {
      border-color:#d7e4df;
      background:#ffffff;
      box-shadow:0 6px 16px rgba(18,33,37,.035);
    }

    .heat-cell-v23 {
      border-color:#d7e4df;
      background:#f8fbfa;
    }

    .heat-cell-v23.done {
      border-color:#b9dece;
      background:#ecf8f2;
    }

    .heat-cell-v23.due {
      border-color:#ebbcae;
      background:#fff1ec;
    }

    .heat-cell-v23.future {
      border-color:#c4d8ef;
      background:#eef6ff;
    }

    .heat-cell-v23.unset {
      background:#f1f4f3;
      color:#819095;
    }

    .heatmap-history-v23 {
      border-color:#d7e4df;
      background:#ffffff;
      box-shadow:0 8px 18px rgba(18,33,37,.04);
    }

    .chart-current-v22,
    .chart-toolbar-v251,
    .chart-filter-v22 {
      border-color:#d3e2dc;
      background:#ffffff;
    }

    .chart-block-picker-v310 label {
      border-color:#d3e2dc;
      background:#ffffff;
    }

    .chart-block-picker-v310 input:checked + span {
      color:#2f7a62;
    }

    .chart-bars-v251 {
      background:
        linear-gradient(to bottom, transparent 0, transparent 24%, rgba(191,211,206,.58) 24.5%, transparent 25%, transparent 49%, rgba(191,211,206,.58) 49.5%, transparent 50%, transparent 74%, rgba(191,211,206,.58) 74.5%, transparent 75%),
        #ffffff;
    }

    .bar-columns-v23 {
      background:linear-gradient(180deg,#fbfdfc,#ffffff);
    }

    .column-v23 i {
      background:linear-gradient(180deg,#43a37f,#2f7a62);
      box-shadow:0 10px 18px rgba(47,122,98,.18);
    }

    .column-v23.age-1 i {
      background:linear-gradient(180deg,#8b75c5,#6f5aaa);
      box-shadow:0 10px 18px rgba(111,90,170,.18);
    }

    .column-v23.age-7 i {
      background:linear-gradient(180deg,#5894d8,#2f6fbd);
      box-shadow:0 10px 18px rgba(47,111,189,.18);
    }

    .column-v23.age-28 i {
      background:linear-gradient(180deg,#d99a3f,#b66a17);
      box-shadow:0 10px 18px rgba(182,106,23,.18);
    }

    .chart-values-v251 span {
      background:#e7f4ee;
      color:#2f7a62;
    }

    .chart-values-v251 .age-1 {
      background:#f0edfb;
      color:#6f5aaa;
    }

    .chart-values-v251 .age-7 {
      background:#eaf3ff;
      color:#2f6fbd;
    }

    .chart-values-v251 .age-28 {
      background:#fff1d6;
      color:#9a5a12;
    }

    .record-details[open]:before {
      background:rgba(14,28,26,.42);
      backdrop-filter:blur(3px);
    }

    .record-details[open] .record-drawer-body {
      box-shadow:-30px 0 70px rgba(18,33,37,.26);
      background:#ffffff;
    }

    .record-tabbar {
      background:#fbfdfc;
      border-bottom-color:#d9e4e0;
    }

    .record-tabbar button.active {
      border-color:#bcd9ce;
      background:#eaf6f0;
      color:#276f59;
    }

    .lab-photo {
      transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }

    .lab-photo:hover {
      transform:translateY(-2px);
      border-color:#b9d7cc;
      box-shadow:0 16px 34px rgba(18,33,37,.12);
    }

    .message {
      border-color:#b9dece;
      background:#ecf8f2;
      color:#245f4c;
    }

    .empty-v22 {
      border-color:#cfded9;
      background:#f8fbfa;
    }

    @media (max-width:820px) {
      .sidebar-v22 {
        background:#142622;
        box-shadow:0 10px 24px rgba(18,33,37,.12);
      }
      .topbar-v22 {
        box-shadow:0 8px 20px rgba(18,33,37,.055);
      }
      .work-main-v22 {
        padding:16px;
      }
    }

    /* vNext UI stabilization patch 2 */
    html { max-width:100%; overflow-x:clip; }
    body { max-width:100%; overflow-x:clip; }
    .dashboard-shell-v22, .app-shell-v22 { overflow:visible; }
    .sidebar-v22 {
      align-self:start;
      position:sticky;
      top:0;
      height:100vh;
      max-height:100vh;
      overflow-y:auto;
      overflow-x:hidden;
      overscroll-behavior:contain;
    }
    .sidebar-v22 nav { display:grid; align-content:start; }
    .side-foot-v22 { margin-top:auto; }
    .bar-chart-v23 {
      align-items:stretch;
      grid-auto-columns:minmax(144px,1fr);
      overflow-x:auto;
      overflow-y:visible;
      padding-bottom:16px;
    }
    .bar-group-v23 {
      min-width:144px;
      min-height:276px;
      height:auto;
      grid-template-rows:180px minmax(38px,auto) auto;
      align-self:stretch;
    }
    .bar-columns-v23 { height:180px; }
    .bar-group-v23 > strong {
      min-height:38px;
      align-content:start;
    }
    .chart-values-v251 {
      min-height:52px;
      max-height:none;
      align-content:start;
      overflow:visible;
    }
    .bar-chart-28d-v23 .bar-group-v23 {
      min-height:222px;
      height:auto;
      grid-template-rows:170px minmax(44px,auto);
    }
    .bar-chart-28d-v23 .bar-columns-v23 { height:170px; }
    .chart-modal-v251 .bar-chart-v23 { grid-auto-columns:minmax(184px,1fr); }
    .chart-modal-v251 .bar-group-v23 {
      min-width:184px;
      min-height:448px;
      height:auto;
      grid-template-rows:340px minmax(48px,auto) auto;
    }
    .chart-modal-v251 .bar-columns-v23 { height:340px; }
    .chart-modal-v251 .chart-values-v251 {
      min-height:60px;
      max-height:none;
    }

    @media (min-width:821px) {
      .app-shell-v22 { display:grid; grid-template-columns:224px minmax(0,1fr); }
      .sidebar-v22 {
        flex-direction:column;
        align-items:stretch;
        border-right:1px solid rgba(204,218,214,.9);
        border-bottom:0;
      }
      .sidebar-v22 nav {
        display:grid;
        flex-wrap:initial;
        overflow:visible;
      }
      .sidebar-v22 nav a { flex:initial; }
      .side-foot-v22 {
        display:grid;
        margin-left:0;
        margin-top:auto;
      }
    }

    @media (min-width:821px) and (max-width:1100px) {
      .app-shell-v22 { grid-template-columns:204px minmax(0,1fr); }
    }

    @media (max-width:820px) {
      body { overflow-x:hidden; }
      .app-shell-v22 { display:block; }
      .sidebar-v22 {
        position:sticky;
        top:0;
        height:auto;
        max-height:none;
        overflow-y:visible;
        overflow-x:hidden;
      }
      .sidebar-v22 nav {
        display:flex;
        overflow-x:auto;
      }
      .bar-chart-v23 {
        grid-auto-columns:136px;
      }
      .bar-group-v23 {
        min-width:136px;
      }
    }

    @media (max-width:520px) {
      .bar-chart-v23 { grid-auto-columns:128px; }
      .bar-group-v23 { min-width:128px; }
      .chart-values-v251 span { padding:0 5px; }
      .heatmap-tools-v49,
      .chart-selector-tools-v49 {
        align-items:stretch;
        flex-direction:column;
      }
      .heatmap-tools-v49 label {
        grid-template-columns:1fr;
        min-width:0;
      }
      .heatmap-tools-v49 small {
        margin-left:0;
      }
    }

    /* v4.8b final chart clipping guard */
    .bar-chart-v23,
    .bar-chart-28d-v23 {
      overflow-x:auto;
      overflow-y:visible;
      padding-bottom:22px;
    }
    .bar-chart-28d-v23 .bar-group-v23 {
      min-height:268px;
      height:auto;
      grid-template-rows:170px minmax(76px,auto);
      overflow:visible;
    }
    .bar-chart-28d-v23 .bar-group-v23 > strong {
      min-height:76px;
      overflow:visible;
      white-space:normal;
    }
    .chart-modal-v251 .bar-chart-28d-v23 .bar-group-v23 {
      min-height:456px;
      grid-template-rows:340px minmax(88px,auto);
    }

    /* vNext abnormal highlighting and recording UX */
    .heatmap-row-v23.abnormal {
      border-color:#efb2aa;
      background:linear-gradient(90deg,#fff2f1,#fffdfb);
    }
    .heat-cell-v23.abnormal {
      border-color:#e26f62;
      background:#fff1ef;
      box-shadow:inset 4px 0 0 #c84135;
    }
    .heat-cell-v23.abnormal span,
    .heat-cell-v23.abnormal small {
      color:#a83229;
    }
    .research-block-v22.abnormal {
      border-color:#e7a39b;
      background:linear-gradient(180deg,#fff4f2,#fffdfb);
      box-shadow:0 14px 34px rgba(181,58,47,.12);
    }
    .research-block-v22.abnormal h3 {
      color:#a83229;
    }
    .abnormal-badge-v33 {
      background:#b83d31;
      color:#fff;
      border-color:#b83d31;
      box-shadow:0 8px 22px rgba(184,61,49,.2);
    }
    .strength-bar-v22.abnormal i {
      background:#f8d7d2;
    }
    .strength-bar-v22.abnormal i:before {
      background:#c84135;
    }
    .strength-bar-v22.abnormal b,
    .strength-bar-v22.abnormal em {
      color:#a83229;
    }
    .result-row.abnormal,
    .metric-result-card-v22.abnormal {
      border-color:#e7a39b;
      background:linear-gradient(180deg,#fff5f3,#fff);
      box-shadow:inset 4px 0 0 #c84135;
    }
    .metric-result-card-v22.abnormal .metric-result-head-v22 strong,
    .result-row.abnormal .result-row-title strong,
    .result-row.abnormal .result-row-title span {
      color:#a83229;
    }
    .source-pill-v22.danger {
      border-color:#e5aaa3;
      background:#fff0ee;
      color:#a83229;
    }
    .metric-options {
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .metric-choice {
      min-height:46px;
      border-color:#cfe0da;
      background:#fbfdfc;
      transition:border-color .16s ease, background .16s ease, transform .16s ease;
    }
    .metric-choice:has(input:checked) {
      border-color:#337861;
      background:#edf8f2;
      box-shadow:inset 4px 0 0 #337861;
    }
    .metric-choice:hover {
      transform:translateY(-1px);
      border-color:#9ec6b6;
    }
    .metric-result-help-v33 {
      margin:0;
      padding:9px 11px;
      border:1px solid #d8e6e0;
      border-radius:8px;
      background:#f8fbfa;
      color:#52706b;
      font-size:12px;
      font-weight:900;
    }
    .specimen-row-v22 {
      min-width:1320px;
      grid-template-columns:82px minmax(120px,.9fr) minmax(120px,.9fr) minmax(116px,.85fr) minmax(190px,1.2fr) minmax(160px,1fr) minmax(150px,1fr) minmax(170px,1.2fr) 58px;
    }
    .specimen-row-v22 [data-strength-mpa] {
      border-color:#a8cdbd;
      background:#edf8f2;
      color:#1f664f;
      font-size:15px;
      font-weight:950;
    }
    .converted-strength-pill-v33 {
      display:flex;
      align-items:center;
      min-height:38px;
      padding:0 10px;
      border:1px solid #b7d9c8;
      border-radius:8px;
      background:#edf8f2;
      color:#1f664f;
      font-size:13px;
      font-weight:950;
      line-height:1.2;
    }
    .specimen-row-v22 [data-pressure-kn],
    .specimen-row-v22 [data-area-mm2] {
      background:#fbfcfb;
    }
    .specimen-row-v22 [data-area-preset] {
      min-width:0;
      background:#fbfcfb;
      font-weight:850;
    }
    .fixed-area-pill-v34,
    .coefficient-pill-v33 {
      display:flex;
      align-items:center;
      min-height:38px;
      padding:0 10px;
      border:1px solid #d8e6e0;
      border-radius:8px;
      background:#f8fbfa;
      color:#52706b;
      font-size:12px;
      font-weight:900;
      line-height:1.25;
    }
    .coefficient-pill-v33.reduced {
      border-color:#f0c787;
      background:#fff8eb;
      color:#9b611f;
    }
    .specimen-summary-v22 {
      border-color:#c7ddd4;
      background:#f4faf7;
    }
    .result-flag-v25:has(input:checked) {
      border-color:#e0958c;
      background:#fff0ee;
      color:#a83229;
      box-shadow:inset 4px 0 0 #c84135;
    }

/* v5.1 export and upgrade-plan tools */
.export-tools-v55 {
  display: grid;
  gap: 14px;
}
.export-tools-v55 .archive-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.inline-tool-form-v55 {
  margin: 0;
}
.compact-title-v55 {
  margin-bottom: 4px;
}
.compact-title-v55 h3 {
  margin: 0;
  font-size: 18px;
}
.mini-grid-v55 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.mini-grid-v55 article {
  border: 1px solid rgba(40, 116, 95, 0.16);
  background: rgba(255, 255, 255, 0.72);
  border-radius: 12px;
  padding: 12px 14px;
  min-height: 92px;
}
.mini-grid-v55 strong {
  display: block;
  color: #1f6f5a;
  font-size: 15px;
  margin-bottom: 8px;
}
.mini-grid-v55 span {
  display: block;
  color: #586866;
  font-size: 13px;
  line-height: 1.55;
}
@media (max-width: 860px) {
  .mini-grid-v55 {
    grid-template-columns: 1fr;
  }
}

/* v5.2 compact data-health panel */
.compact-health-v52 {
  padding: 0;
  overflow: hidden;
}
.compact-health-v52 details {
  padding: 18px 20px;
}
.compact-health-v52 summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.compact-health-v52 summary::-webkit-details-marker {
  display: none;
}
.health-summary-title-v61 {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.health-summary-title-v61 strong {
  color: var(--apple-ink);
  font-size: 20px;
}
.health-summary-title-v61 em {
  color: var(--apple-muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
}
.health-summary-v52 {
  flex: 0 0 auto;
  border: 1px solid rgba(45, 104, 86, 0.18);
  border-radius: 999px;
  padding: 8px 12px;
  color: #45625c;
  background: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
  font-size: 13px;
}
.health-summary-v52 strong {
  color: #1f6f5a;
  font-size: 16px;
}
.health-strip-v52 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.health-strip-v52 span {
  border: 1px solid rgba(50, 110, 95, 0.14);
  background: rgba(242, 248, 246, 0.82);
  border-radius: 999px;
  padding: 6px 10px;
  color: #516864;
  font-size: 12px;
}
.health-subtitle-v52 {
  margin: 18px 0 10px;
  font-size: 15px;
  color: #245e4f;
}
.muted-health-v52 .health-card-v23 {
  opacity: 0.82;
}
@media (max-width: 720px) {
  .compact-health-v52 summary {
    align-items: flex-start;
    flex-direction: column;
  }
  .health-summary-v52 {
    white-space: normal;
  }
}

/* v5.2 workspace status strip */
.workspace-status-v52 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 20px 0;
}
.workspace-status-v52 a {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "label strong" "small small";
  align-items: baseline;
  gap: 3px 8px;
  text-decoration: none;
  border: 1px solid rgba(40, 116, 95, 0.16);
  background: rgba(255, 255, 255, 0.82);
  border-radius: 14px;
  padding: 10px 12px;
  color: #20312f;
  box-shadow: 0 8px 24px rgba(26, 71, 60, 0.06);
}
.workspace-status-v52 span {
  grid-area: label;
  color: #6f807c;
  font-size: 12px;
}
.workspace-status-v52 strong {
  grid-area: strong;
  color: #1f6f5a;
  font-size: 15px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.workspace-status-v52 small {
  grid-area: small;
  color: #61736f;
  font-size: 12px;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 980px) {
  .workspace-status-v52 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .workspace-status-v52 {
    grid-template-columns: 1fr;
    padding-inline: 14px;
  }
}

/* v5.4 compact strength-entry table */
.specimen-actions-v52 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 7px 0 2px;
}
.specimen-actions-v52 .chip-button {
  min-height: 32px;
  padding: 0 10px;
  font-size: 12px;
}
.specimen-table-v22 {
  gap: 5px;
}
.specimen-row-v22 {
  min-width: 920px;
  grid-template-columns: 54px 94px 86px 92px minmax(126px, 1fr) 88px 104px minmax(112px, 1fr) 42px;
  gap: 5px;
}
.specimen-row-v22 input,
.specimen-row-v22 select {
  min-height: 34px;
  padding: 0 8px;
  font-size: 13px;
}
.specimen-row-v22.head {
  font-size: 11px;
}
.fixed-area-pill-v34,
.coefficient-pill-v33,
.converted-strength-pill-v33 {
  min-height: 32px;
  padding-inline: 8px;
  line-height: 1.25;
}
.specimen-summary-v22 {
  min-width: 720px;
  padding: 8px;
  gap: 6px;
}
.specimen-summary-v22 span {
  min-height: 28px;
  padding-inline: 8px;
}
.metric-result-help-v33 {
  margin: 6px 0 8px;
}
.age-count-toolbar-v51 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.age-count-toolbar-v51 .chip-button {
  min-height: 32px;
  padding-inline: 10px;
}
.age-count-toolbar-v51 small {
  color: #63736f;
  font-size: 12px;
}



/* v5.4.2 strength recording density pass */
.metric-result-card-v22 {
  padding: 12px;
}
.metric-result-head-v22.compact-v542 {
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #e3eeea;
}
.metric-result-head-v22.compact-v542 strong {
  font-size: 15px;
}
.metric-result-head-v22.compact-v542 .source-pill-v22 {
  min-height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  background: #f6faf8;
}
.metric-result-help-v33.compact-v542 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 7px 0 4px;
  padding: 7px 9px;
  line-height: 1.35;
}
.metric-result-help-v33.compact-v542 span:first-child {
  color: #1f664f;
}
.specimen-table-v22 {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.specimen-summary-v22 {
  order: -2;
  min-width: 680px;
  padding: 7px;
  background: #f6faf8;
}
.specimen-actions-v52 {
  order: -1;
  margin: 2px 0 5px;
  padding: 6px 0 2px;
  border-bottom: 1px dashed #d7e5df;
}
.specimen-summary-v22 span {
  min-height: 26px;
  padding: 0 8px;
  font-size: 12px;
}
.specimen-row-v22 {
  min-width: 860px;
  grid-template-columns: 48px 88px 78px 86px minmax(112px, 1fr) 74px 96px minmax(108px, 1fr) 38px;
}
.specimen-row-v22.head {
  letter-spacing: 0;
}
.fixed-area-pill-v34,
.coefficient-pill-v33,
.converted-strength-pill-v33 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 820px) {
  .metric-result-card-v22 { padding: 10px; }
  .metric-result-head-v22.compact-v542 .source-pill-v22 { font-size: 11px; }
  .specimen-summary-v22 { min-width: 640px; }
  .specimen-row-v22 { min-width: 820px; }
}


/* v5.4.3 record drawer action bar */
.record-savebar-v543 {
  position: sticky;
  bottom: -1px;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
  padding: 10px;
  border: 1px solid #d2e3dc;
  border-radius: 10px;
  background: rgba(248, 251, 250, .96);
  box-shadow: 0 -10px 28px rgba(24, 66, 54, .08);
  backdrop-filter: blur(10px);
}
.record-savebar-v543 span {
  margin-right: auto;
  color: #61736f;
  font-size: 12px;
  font-weight: 800;
}
.record-details.is-dirty-v552 .record-savebar-v543 {
  border-color: #e4b75d;
  background: rgba(255, 248, 229, .96);
  box-shadow: 0 -10px 28px rgba(174, 117, 31, .14);
}
.record-details.is-dirty-v552 .record-savebar-v543 span {
  color: #8a5b12;
}
.record-savebar-v543 button {
  min-height: 36px;
  border: 1px solid #bfd7ce;
  border-radius: 8px;
  padding: 0 12px;
  background: #fff;
  color: #2e7d63;
  font-weight: 900;
  cursor: pointer;
}
.record-savebar-v543 button.primary {
  border-color: #2f8067;
  background: #2f8067;
  color: #fff;
  box-shadow: 0 10px 20px rgba(47, 128, 103, .18);
}
.record-savebar-v543 button.secondary:hover {
  border-color: #2f8067;
}
.record-savebar-v543 button:disabled {
  cursor: wait;
  opacity: .72;
}
.record-drawer-body .record-tabbar {
  position: sticky;
  top: 0;
  z-index: 7;
  background: rgba(246, 250, 248, .96);
  backdrop-filter: blur(10px);
  padding-top: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #dce9e4;
}
@media (max-width: 680px) {
  .record-savebar-v543 {
    align-items: stretch;
    flex-direction: column;
  }
  .record-savebar-v543 span {
    margin-right: 0;
  }
  .record-savebar-v543 button {
    width: 100%;
  }
}

/* v5.4.7 task shortcut target focus */
#today-tasks:target,
#new-block:target {
  outline: 3px solid rgba(47,128,103,.28);
  outline-offset: 5px;
  box-shadow: 0 16px 34px rgba(47,128,103,.12);
}
#today-tasks:target .section-head-v22 h2::after {
  content: " 已定位";
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e4f4ec;
  color: #2f8067;
  font-size: 12px;
  vertical-align: middle;
}


/* v5.4.8 direct result-card targeting */
.metric-result-card-v22.target-flash-v548,
.result-row.target-flash-v548 {
  outline: 3px solid rgba(47,128,103,.45);
  box-shadow: 0 0 0 6px rgba(47,128,103,.10), 0 18px 34px rgba(47,128,103,.16);
  animation: targetPulseV548 1.8s ease-out 1;
}
@keyframes targetPulseV548 {
  0% { transform: translateY(-2px); }
  35% { transform: translateY(0); }
  100% { transform: none; }
}

/* v5.5.0 search feedback */
.global-search-v22 {
  gap: 5px;
}
.search-field-v22 {
  grid-template-columns: 1fr auto auto;
}
.search-field-v22 input {
  padding-right: 78px;
}
.search-field-v22 [data-search-clear] {
  right: 40px;
  background: #fff7f2;
  border-color: #ead2c4;
  color: #98613d;
}
.search-field-v22 [data-search-clear][hidden] {
  display: none;
}
.search-status-v550 {
  color: #61736f;
  font-size: 12px;
  font-weight: 800;
}
.search-status-v550.empty,
[data-block-search-status].empty {
  color: #a8422d;
}
.search-clear-v550[hidden] {
  display: none;
}
.search-empty-v550 {
  margin-top: 12px;
  border: 1px dashed #d9b8ad;
  background: #fff8f6;
  color: #9b4f3d;
}
[data-block-list].search-empty {
  min-height: 80px;
}
@media (max-width: 760px) {
  .search-status-v550 {
    display: none;
  }
}


/* v5.5.6 record drawer polish */
.record-details[open] .drawer-top-v22 {
  z-index: 14;
  min-height: 64px;
  align-items: center;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(12px);
}
.drawer-title-v556 {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.drawer-title-v556 strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.drawer-title-v556 small {
  overflow: hidden;
  color: #61736f;
  font-size: 12px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.record-details.is-dirty-v552 .drawer-top-v22 {
  border-bottom-color: #e4b75d;
  background: rgba(255, 251, 238, .98);
}
.record-details.is-dirty-v552 .drawer-title-v556 small::after {
  content: "未保存";
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  margin-left: 8px;
  padding: 0 7px;
  border: 1px solid #e4b75d;
  border-radius: 999px;
  background: #fff4d8;
  color: #8a5b12;
  font-size: 11px;
  font-weight: 900;
}
.record-drawer-body .record-tabbar {
  top: 63px;
  z-index: 13;
  box-shadow: 0 8px 20px rgba(20, 60, 50, .06);
}
.record-drawer-body .record-tabbar button.active {
  box-shadow: inset 0 -2px 0 #2f8067;
}
.record-details[open] .record-section {
  scroll-margin-top: 132px;
}
.record-savebar-v543 {
  border-radius: 12px 12px 0 0;
}
@media (max-width: 680px) {
  .record-details[open] .drawer-top-v22 {
    min-height: 72px;
    gap: 8px;
  }
  .drawer-title-v556 strong,
  .drawer-title-v556 small {
    white-space: normal;
  }
  .record-drawer-body .record-tabbar {
    top: 72px;
    padding-top: 8px;
  }
  .record-savebar-v543 {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .record-savebar-v543 span {
    grid-column: 1 / -1;
  }
  .record-savebar-v543 button.primary {
    grid-column: 1 / -1;
  }
}


/* v5.5.8 visual UI upgrade */
:root {
  --ui-shadow-soft: 0 12px 30px rgba(18, 43, 37, .08);
  --ui-shadow-lift: 0 18px 42px rgba(18, 43, 37, .13);
  --ui-surface: #ffffff;
  --ui-surface-soft: #f7fbf9;
  --ui-focus: rgba(47, 128, 103, .18);
}
.dashboard-card-v22,
.block-card,
.gangue-folder,
.calendar-collapse-v22,
.create-panel-v22,
.record-section,
.metric-result-card-v22 {
  border-color: #dbe9e3;
  box-shadow: var(--ui-shadow-soft);
}
.dashboard-card-v22,
.block-card,
.gangue-folder {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
}
.block-card,
.gangue-folder,
.lab-photo,
.dashboard-card-v22 {
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.block-card:hover,
.gangue-folder:hover,
.dashboard-card-v22:hover {
  border-color: #c5ddd3;
  box-shadow: var(--ui-shadow-lift);
}
input,
select,
textarea {
  border-color: #cfe1da;
  background: #fff;
  transition: border-color .14s ease, box-shadow .14s ease, background-color .14s ease;
}
input:focus,
select:focus,
textarea:focus {
  border-color: #2f8067;
  box-shadow: 0 0 0 3px var(--ui-focus);
  outline: none;
}
.chip-button,
button.secondary,
.record-tabbar button,
.top-actions-v22 a,
.top-actions-v22 button {
  border-color: #c8ded5;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbf8 100%);
}
.chip-button:hover,
button.secondary:hover,
.record-tabbar button:hover,
.top-actions-v22 a:hover,
.top-actions-v22 button:hover {
  border-color: #2f8067;
  box-shadow: 0 8px 18px rgba(47, 128, 103, .12);
}
.drawer-top-v22 {
  border-bottom-color: #dbe8e3;
}
.drawer-title-v556 strong {
  color: #184f42;
  letter-spacing: .01em;
}
.drawer-title-v556 small {
  color: #6b7f79;
}
.record-drawer-body {
  background:
    linear-gradient(180deg, rgba(247, 251, 249, .98), #ffffff 220px),
    #ffffff;
}
.record-panel.active {
  animation: recordPanelInV558 .16s ease-out;
}
@keyframes recordPanelInV558 {
  from { opacity: .65; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
.record-section {
  border-radius: 10px;
  background: rgba(255, 255, 255, .96);
}
.record-section h4 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #edf4f1;
}
.record-section h4 small {
  text-align: right;
}
.record-savebar-v543 {
  border-color: #c7ded5;
  background: rgba(250, 253, 251, .98);
}
.record-savebar-v543 button.primary {
  min-width: 156px;
  background: linear-gradient(180deg, #348a70 0%, #276f59 100%);
  box-shadow: 0 12px 24px rgba(47, 128, 103, .22);
}
.record-details.is-dirty-v552 .record-savebar-v543 button.primary {
  background: linear-gradient(180deg, #b1791d 0%, #8a5b12 100%);
  box-shadow: 0 12px 24px rgba(138, 91, 18, .22);
}
.record-tabbar button.active {
  background: linear-gradient(180deg, #ecf8f2 0%, #dff1e9 100%);
}
.metric-result-card-v22 {
  border-radius: 10px;
}
.source-pill-v22,
.result-flag-v25,
.specimen-summary-v22 span {
  border-radius: 999px;
}
@media (max-width: 680px) {
  .record-section h4 {
    display: grid;
  }
  .record-section h4 small {
    text-align: left;
  }
  .record-savebar-v543 button.primary {
    min-width: 0;
  }
}


/* v5.5.9 entry form usability */
.metric-result-card-v22 {
  gap: 12px;
  padding: 14px;
}
.metric-result-help-v33 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 8px;
  margin: 0;
}
.metric-result-help-v33 span {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #dbe9e3;
  border-radius: 8px;
  background: #f8fbfa;
  color: #61736f;
  font-size: 12px;
  font-weight: 900;
}
.specimen-table-v22 {
  gap: 10px;
}
.specimen-row-v22 {
  min-width: 1100px;
  grid-template-columns: 56px minmax(112px, .9fr) minmax(112px, .9fr) minmax(112px, .9fr) minmax(190px, 1.35fr) 92px minmax(118px, .9fr) minmax(140px, 1.1fr) 44px;
  gap: 8px;
}
.specimen-row-v22:not(.head) {
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #fbfdfc;
}
.specimen-row-v22:not(.head):focus-within {
  border-color: #a9d1c1;
  background: #f5fbf8;
  box-shadow: 0 0 0 3px rgba(47, 128, 103, .10);
}
.specimen-cell-v559 {
  min-width: 0;
  display: grid;
  gap: 4px;
  align-content: start;
}
.specimen-cell-v559 > span:first-child {
  display: none;
  color: #6b7f79;
  font-size: 11px;
  font-weight: 900;
}
.specimen-cell-v559 input,
.specimen-cell-v559 select {
  width: 100%;
}
.specimen-primary-v559 input {
  min-height: 40px;
  border-color: #bdd8ce;
  color: #184f42;
  font-size: 15px;
  font-weight: 950;
}
.specimen-converted-v559 .converted-strength-pill-v33 {
  min-height: 40px;
  justify-content: center;
  border-color: #bdd8ce;
  background: #edf8f2;
  color: #276f59;
  font-size: 14px;
}
.specimen-no-v559 input {
  text-align: center;
  font-weight: 950;
}
.specimen-meta-v559 .fixed-area-pill-v34,
.specimen-meta-v559 .coefficient-pill-v33 {
  min-height: 40px;
}
.specimen-dimensions-v64 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}
.specimen-dimensions-v64 label {
  min-width: 0;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 3px;
}
.specimen-dimensions-v64 small {
  color: #61736f;
  font-size: 11px;
  font-weight: 950;
  text-align: center;
}
.specimen-dimensions-v64 input {
  min-width: 0;
  min-height: 40px;
  padding-right: 5px;
  padding-left: 5px;
  text-align: center;
}
.specimen-actions-v52 {
  align-items: center;
  padding: 8px;
  border: 1px dashed #cfe1da;
  border-radius: 10px;
  background: #f8fbfa;
}
.specimen-actions-v52 .chip-button {
  min-height: 34px;
}
.specimen-summary-v22.paste-flash-v560 {
  animation: pasteFlashV560 .9s ease-out 1;
}
@keyframes pasteFlashV560 {
  0% {
    border-color: #2f8067;
    box-shadow: 0 0 0 4px rgba(47, 128, 103, .16);
  }
  100% {
    border-color: #c7ddd4;
    box-shadow: none;
  }
}
@media (max-width: 820px) {
  .metric-result-help-v33 {
    grid-template-columns: 1fr;
  }
  .specimen-table-v22 {
    display: grid;
    gap: 10px;
    overflow: visible;
  }
  .specimen-row-v22 {
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 10px;
    border: 1px solid #dbe9e3;
    border-radius: 12px;
    background: #fbfdfc;
  }
  .specimen-row-v22.head {
    display: none;
  }
  .specimen-cell-v559 > span:first-child {
    display: block;
  }
  .specimen-no-v559,
  .specimen-remark-v559,
  .specimen-meta-v559 {
    grid-column: 1 / -1;
  }
  .remove-specimen-v33 {
    grid-column: 1 / -1;
  }
}
@media (max-width: 520px) {
  .specimen-row-v22 {
    grid-template-columns: 1fr;
  }
}
