.plant-library-card{border-color:#cddfdf;background:linear-gradient(145deg,#f6fbfa,#fff 62%)}
.equipment-photo-card{border-color:#dce9ea}
.photo-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.photo-stage-card{min-width:0;background:#f8fbfb;border:1px solid #e2ebed;padding:14px;border-radius:9px}
.photo-stage-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px;color:#234e5a}
.photo-stage-heading strong{font-size:12px}
.photo-stage-heading span{color:#758e98;font-size:10px;font-weight:700;white-space:nowrap}
.photo-stage-card .upload-drop{min-height:90px;padding:12px 8px}
.photo-stage-card .photo-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.photo-stage-card .photo-tile-controls{justify-content:flex-end;padding:4px 7px}
.photo-stage-card .photo-tile-controls button{font-size:10px;font-weight:700;padding:7px 8px}
@media(max-width:690px){.photo-stage-grid{grid-template-columns:1fr}.photo-stage-card{padding:12px}.photo-stage-card .upload-drop{min-height:82px}}
/* Keep document-level horizontal overscroll from triggering browser history where supported.
   DC test tables retain their own horizontal scrolling. */
html,body{width:100%;max-width:100%;overflow-x:clip;overscroll-behavior-x:none}
.app-shell,.workspace{max-width:100%;overscroll-behavior-x:none}
.table-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.preview-scroll{overscroll-behavior-x:contain}
/* Editor-first layout: report preview appears only when explicitly opened. */
.workspace{grid-template-columns:228px minmax(0,1fr)}
.workspace .editor-pane{max-width:1400px;width:100%;margin:0 auto}
.workspace .preview-pane{display:none}
.workspace .preview-pane.open{display:flex;inset:84px 0 0 0}
.workspace.focus-entry .preview-pane.open{inset:84px 0 0 0}
.workspace .preview-pane.open,.workspace.focus-entry .preview-pane.open{position:fixed;inset:0;z-index:120}
.preview-pane .preview-heading{position:sticky;top:0;z-index:3;gap:14px}
.preview-pane .preview-back{display:inline-flex;min-height:40px}
.preview-pane .preview-close{display:grid;place-items:center;min-width:45px;min-height:45px;cursor:pointer;font-size:30px}
.mobile-menu-bar{display:none}
.mobile-nav-items{display:contents}
.plant-library-card .card-step{color:#087e77;font-size:15px}
.plant-library-controls{display:flex;gap:13px;align-items:end;flex-wrap:wrap}
.plant-library-controls>.field{flex:1;min-width:205px}
.plant-buttons{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.plant-buttons .btn{min-height:41px;padding:10px 12px}
.plant-library-message{margin-top:15px;color:#69818c;font-size:11px;line-height:1.6;border-top:1px solid #e1ebec;padding-top:12px}
#plant-profile-select{font-weight:700;color:#1f4b57;background-color:#fff}
.rail-schedule-label{padding-top:24px;padding-bottom:8px}
.schedule-nav-button{position:relative;color:#d1e5e7}
.schedule-nav-button .nav-index{font-size:18px}
.visit-due-count{display:inline-grid;place-items:center;flex-shrink:0;border-radius:999px;background:#fbe1c6;color:#8b4612;font-weight:800;font-size:10px;min-width:21px;height:21px;padding:0 5px;margin-left:auto}
.visit-due-count[hidden]{display:none!important}
.plant-schedule-fields{padding-top:20px;margin-top:18px;border-top:1px solid #dceaea}
.plant-schedule-fields .inline-help{line-height:1.45;font-size:10px}
.plant-history-date{display:flex;align-items:center;min-height:43px;padding:11px 13px;border:1px solid #d8e6e8;border-radius:7px;background:#edf4f4;color:#234e59;font-size:13px;font-weight:800}
.plant-history-panel{margin-top:15px;border:1px solid #dce9e7;border-radius:9px;background:#fff;padding:12px 15px}
.plant-history-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:#244d57;font-size:12px;font-weight:800;list-style:none}
.plant-history-panel summary::-webkit-details-marker{display:none}
.plant-history-panel summary:before{content:'▸';margin-right:4px;color:#0b8b7f}
.plant-history-panel[open] summary:before{content:'▾'}
.plant-history-panel summary span{margin-left:auto;color:#79939b;font-size:11px;font-weight:600}
.plant-history-panel>p{margin:11px 0 0;font-size:11px;line-height:1.6;color:#81949c}
.plant-history-list{display:grid;max-height:230px;overflow:auto;margin-top:13px;gap:6px}
.plant-history-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f2f8f7;border-radius:6px;padding:9px 12px;font-size:11px;color:#587481}
.plant-history-entry time{font-weight:800;color:#235864}
.plant-history-empty{font-size:11px;color:#98a7ac;margin:4px 0}
.inverter-layout-card{border-color:#d7e6e5}
.layout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#eef7f5;border:1px solid #dcecea;border-radius:9px;margin-bottom:14px;color:#386975;font-size:12px;font-weight:700}
.inverter-layout-list{display:grid;gap:12px}
.inverter-config-card{padding:15px;border:1px solid #dae6e8;border-radius:11px;background:#fcfefe}
.inverter-config-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e8f0f1;flex-wrap:wrap}
.inverter-config-heading>label,.mppt-config-row>label{display:flex;align-items:center;gap:9px;color:#305965;font-size:12px;font-weight:800}
.inverter-config-heading input,.mppt-config-row input{height:37px;border:1px solid #d3e2e4;border-radius:7px;padding:6px 9px;background:#fff;color:#244556;font:inherit;font-size:12px}
.inverter-config-heading input{width:92px}
.inverter-config-heading>div{display:flex;gap:12px;align-items:center}
.inverter-config-heading .btn,.mppt-config-row .btn{font-size:11px;padding:9px 12px}
.mppt-config-list{display:grid;gap:8px;margin-top:12px}
.mppt-config-row{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e7eef0;border-radius:8px;background:#f5f9fa;flex-wrap:wrap}
.mppt-config-row input{width:78px}
.mppt-config-row .mppt-string-count input{width:63px}
.mppt-config-row .text-button{margin-left:auto;font-size:11px}
.config-empty,.config-empty-layout{font-size:12px;line-height:1.7;color:#8299a2}
.config-empty-layout{text-align:center;padding:19px;background:#f8fbfb;border:1px dashed #d4e4e3;border-radius:9px}
.inverter-layout-card>.micro-help{margin:15px 0 0}
.dc-layout-message{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0 0 16px;background:#eaf6f3;color:#2f6863;border-radius:8px;padding:13px 15px;font-size:12px;line-height:1.6}
.dc-layout-message[hidden],.helper-bar[hidden],.table-bottom button[hidden]{display:none!important}
.locked-test-cell{font-weight:800;font-size:11px;color:#2e6170;white-space:nowrap}
.plant-next-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#e9f5f2;border-radius:8px;margin-top:16px}
.plant-next-due{color:#466f76;font-size:11px;line-height:1.55;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.plant-next-due strong{color:#174953;font-size:12px}
.plant-next-row .btn{font-size:11px;padding:10px 12px;flex-shrink:0}
.schedule-page-heading .card-heading{margin-bottom:20px}
.visit-schedule-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.schedule-stat{background:#f1f6f7;padding:14px 13px;border-radius:9px;display:flex;flex-direction:column;gap:4px;color:#27716c}
.schedule-stat strong{font-family:var(--display);font-size:29px;line-height:1.1}
.schedule-stat span{font-weight:700;font-size:10px;line-height:1.45;color:#647b85}
.schedule-stat.critical{background:#fff0ed;color:#c24544}
.schedule-stat.warning{background:#fff6e9;color:#b87320}
.schedule-stat.neutral{background:#f1f2f4;color:#738496}
.schedule-info-note{font-size:11px;line-height:1.6;color:#80949c;margin:18px 0 0}
.demo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;padding-top:15px;border-top:1px solid #e9eff0;color:#748e98;font-size:10px;line-height:1.5}
.demo-toolbar b{color:#347c76}
.demo-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}
.demo-toolbar .btn{font-size:10px;padding:8px 11px}
.demo-toolbar .btn[hidden]{display:none!important}
.demo-record-flag{display:inline-block;vertical-align:middle;font-family:var(--font);font-size:8px;font-weight:800;letter-spacing:.7px;background:#eaf4f5;color:#0f8784;border-radius:4px;padding:3px 5px;margin-left:8px}
.schedule-group{display:grid;gap:12px}
.schedule-group+.schedule-group{margin-top:20px}
.schedule-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--display);font-size:13px;color:#26495b;margin:4px 0 3px;padding:0 3px}
.schedule-group-title span{font-family:var(--font);font-size:10px;color:#7b939e;background:#e6edef;padding:5px 9px;border-radius:20px}
.all-sites-filters{margin-bottom:14px}
.all-sites-filter-actions{display:flex;gap:8px;flex-wrap:wrap}
.all-sites-filter-actions .btn{font-size:11px;padding:9px 12px}
.all-sites-summary{margin-top:17px;padding-top:14px;border-top:1px solid #e4ebed;color:#6b8590;font-size:12px;font-weight:700}
@media(min-width:1100px){.workspace.focus-entry #section-allsites .visit-schedule-list{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace.focus-entry #section-schedule .visit-schedule-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.visit-schedule-list{display:grid;gap:12px}
.schedule-plant-card{background:#fff;border:1px solid #e1e9eb;border-radius:11px;padding:19px 20px;box-shadow:0 3px 14px #10314307}
.schedule-plant-main{display:flex;justify-content:space-between;gap:12px;align-items:start}
.schedule-plant-name{font-family:var(--display);font-weight:800;font-size:15px;color:#193749;min-width:0;overflow-wrap:anywhere}
.schedule-plant-name small{display:block;color:#8296a0;font-size:11px;font-weight:500;margin-top:4px}
.schedule-badge{border-radius:20px;background:#e8f3ee;color:#28735c;font-weight:800;font-size:10px;line-height:1.3;padding:6px 10px;white-space:nowrap;display:inline-flex;align-items:center}
.schedule-badge.overdue,.schedule-badge.due{background:#ffe8e5;color:#ac4542}
.schedule-badge.soon{background:#fff0d5;color:#9a6215}
.schedule-badge.missing{background:#e9eff2;color:#778997}
.schedule-plant-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:21px}
.schedule-plant-info>div{border-left:2px solid #b9dcd7;padding-left:10px;min-width:0}
.schedule-plant-info span{display:block;font-size:10px;color:#93a2aa;margin-bottom:5px}
.schedule-plant-info strong{font-weight:800;font-size:12px;color:#27475a}
.schedule-plant-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #edf1f3;margin-top:19px;padding-top:14px}
.schedule-plant-foot span{color:#97a6ac;font-size:10px;line-height:1.4}
.schedule-plant-foot .btn{padding:8px 12px}
.schedule-empty h3{margin:0 0 8px;font-family:var(--display);font-size:17px}
.schedule-empty p{color:#7e949c;font-size:12px;line-height:1.7;margin-bottom:20px}
.editor-bottom[hidden]{display:none!important}
@media(max-width:1380px){.plant-library-controls{display:block}.plant-buttons{margin-top:12px}}
@media(max-width:690px){.workspace .preview-pane.open,.workspace.focus-entry .preview-pane.open{inset:0}}
@media(max-width:690px){
  .app-header{height:112px;min-height:112px;display:flex;align-items:stretch;flex-direction:column;justify-content:center;gap:8px;padding:8px 12px}
  .brand-lockup{min-width:0}.brand-lockup h1{font-size:14px}.brand-eyebrow{font-size:7px}
  .header-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
  .header-actions .btn{min-width:0;width:100%;font-size:10px;padding:9px 4px;min-height:35px}
  .nav-rail{top:112px;padding:0 12px;display:block!important;max-width:100%;overflow:visible}
  .mobile-menu-bar{display:block}
  .mobile-menu-bar button{display:flex;width:100%;min-height:45px;align-items:center;gap:9px;background:transparent;color:#e6f5f5;border:0;text-align:left;font-size:12px;font-weight:800;padding:8px 4px}
  .mobile-menu-icon{font-size:20px;line-height:1}
  #mobile-current-section{margin-left:auto;color:#9ddcd3;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  #mobile-menu-chevron{font-size:21px;color:#a7c5cf}
  .mobile-nav-items{display:none}
  .mobile-nav-items.open{display:block;max-height:min(65vh,540px);overflow-y:auto;padding:5px 0 12px}
  .mobile-nav-items .rail-label{display:block;font-size:9px;letter-spacing:1px;padding:9px 4px 7px}
  .mobile-nav-items #section-nav,.mobile-nav-items nav[aria-label="Plant visit reminders"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}
  .mobile-nav-items .nav-button{display:flex;align-items:center;width:100%;white-space:normal;text-align:left;min-height:45px;font-size:11px;line-height:1.25;gap:7px;padding:10px 9px;border-radius:7px}
  .mobile-nav-items .nav-button .nav-index{width:21px;min-width:21px;font-size:11px}
  .mobile-nav-items .nav-button small{display:none}
  .mobile-nav-items .rail-footer{display:none}
  .preview-pane .preview-heading{padding:9px 12px;min-height:64px}
  .preview-pane .preview-heading strong{font-size:11px}
  .preview-pane .preview-heading span{font-size:8px;letter-spacing:1px}
  .preview-pane .preview-back{font-size:11px;padding:10px 12px;min-height:42px}
  .preview-pane .preview-close{min-width:42px;min-height:42px}
}
@media(max-width:690px){.app-header{gap:8px}.brand-lockup{flex-shrink:0}.brand-lockup h1{font-size:12px}.brand-logo{width:45px;padding-right:4px}.brand-logo img{width:44px}.brand-eyebrow{font-size:6px}.header-actions{gap:3px}.header-actions .btn{padding:8px 7px;font-size:9px}.plant-buttons .btn{flex:1}.plant-buttons{width:100%}.plant-library-controls>.field{min-width:0}.nav-rail{display:flex!important;align-items:center;gap:5px}.nav-rail #section-nav{flex-shrink:0}.nav-rail nav[aria-label="Plant visit reminders"]{display:flex;gap:4px;width:max-content;flex-shrink:0}.rail-schedule-label{display:none}.plant-next-row{flex-direction:column;align-items:stretch}.plant-next-row .btn{width:100%}.visit-schedule-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-plant-info{grid-template-columns:1fr 1fr;gap:14px}.schedule-plant-main{flex-wrap:wrap}.schedule-plant-foot{flex-direction:column;align-items:stretch}.schedule-plant-foot .btn{align-self:flex-start}.demo-toolbar{flex-direction:column;align-items:stretch}.layout-toolbar{align-items:stretch;flex-direction:column}.layout-toolbar .btn{align-self:flex-start}.mppt-config-row .text-button{margin-left:0}}
@media(max-width:690px){
  .app-header{height:112px;min-height:112px;display:flex;align-items:stretch;flex-direction:column;justify-content:center;gap:8px;padding:8px 12px}
  .header-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
  .header-actions .btn{min-width:0;width:100%;font-size:10px;padding:9px 4px;min-height:35px}
  .nav-rail{display:block!important;top:112px;padding:0 12px;overflow:visible}
  .nav-rail .mobile-nav-items #section-nav,.nav-rail .mobile-nav-items nav[aria-label="Plant visit reminders"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}
  .nav-rail .mobile-nav-items .rail-schedule-label{display:block}
}

/* Let the new transparent landscape wordmark stay readable in the app chrome. */
.app-header .brand-logo{width:102px;flex:0 0 102px;padding-right:12px}
.app-header .brand-logo img{display:block;width:88px;height:auto;object-fit:contain}
@media(max-width:690px){
  .app-header .brand-logo{width:78px;flex-basis:78px;padding-right:8px}
  .app-header .brand-logo img{width:69px}
}

/* Thermal survey: reusable camera details and tap-friendly observation presets. */
#section-thermal .camera-save-note{margin:-2px 0 6px;color:#4b8273;font-size:12px;line-height:1.5;background:#eef8f0;border:1px solid #d2e6d7;border-radius:9px;padding:11px 13px}
#section-thermal .observation-preset-wrap{min-width:0;margin:-9px 0 10px;padding:11px 13px;background:#f7faf6;border:1px solid #e0ebe1;border-radius:10px}
#section-thermal .observation-preset-heading{color:#285c4e;font-weight:800;font-size:11px;letter-spacing:.3px;margin-bottom:9px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#section-thermal .observation-preset-heading span{font-weight:500;color:#7b9288;letter-spacing:0}
#section-thermal .observation-preset-list{display:flex;flex-wrap:wrap;gap:7px}
#section-thermal .observation-preset{font:inherit;font-size:11px;font-weight:650;line-height:1.45;text-align:left;color:#396856;background:#fff;border:1px solid #cadfd2;border-radius:20px;padding:9px 12px;min-height:38px;cursor:pointer;max-width:100%;transition:background .15s,border-color .15s,color .15s}
#section-thermal .observation-preset::before{content:'+';font-size:14px;font-weight:800;margin-right:6px;color:#3a9173}
#section-thermal .observation-preset:hover{border-color:#389675;background:#eff8f1}
#section-thermal .observation-preset.selected{color:#fff;background:#1b604b;border-color:#1b604b}
#section-thermal .observation-preset.selected::before{content:'✓';color:#c9f8d7}
#section-thermal .observation-preset:focus-visible{outline:3px solid #91cba7;outline-offset:2px}
@media(max-width:690px){
  #section-thermal .camera-save-note{font-size:11px}
  #section-thermal .observation-preset-wrap{padding:10px;margin-top:-8px}
  #section-thermal .observation-preset{font-size:11px;padding:9px 11px}
}
