@charset "UTF-8";
:root{--ink:#20383c;--muted:#6e7c80;--line:#dfe6e6;--bg:#f4f7f7;--teal:#173b40;--green:#227966;--amber:#ffce64;--red:#b6403e;--white:#fff;--sidebar:230px;--radius:12px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}a{color:#21665f;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}input,select,textarea{width:100%;background:#fff;border:1px solid #cdd8d8;border-radius:8px;padding:10px 12px;min-height:44px;color:var(--ink)}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--green)}select[multiple]{min-height:135px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #72bdb0;outline-offset:1px;border-color:#4a9487}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #72bdb0;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.2;font-weight:650;letter-spacing:-.6px;overflow-wrap:anywhere}h2{font-size:19px;line-height:1.4;font-weight:650}h3{font-size:17px}small{font-size:13px;color:var(--muted)}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}
.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;background:var(--teal);color:#d3e2e2;padding:30px 15px 16px;display:flex;flex-direction:column;z-index:1000;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;color:#fff;line-height:1.15;font-size:18px;letter-spacing:-.2px;margin:0 10px 34px}.brand:hover{text-decoration:none}.brand strong{font-weight:500}.brand img{flex-shrink:0}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:12px;color:#c5d6d7;padding:10px 12px;font-size:14px;min-height:43px;border-radius:7px;position:relative}.sidebar nav a:hover{background:#244c51;text-decoration:none}.sidebar nav a.active{background:#31565a;color:#fff}.sidebar nav a.active::before{position:absolute;left:0;top:12px;bottom:12px;content:"";width:3px;border-radius:4px;background:var(--amber)}.sidebar nav a.active svg{color:var(--amber)}.nav-label{font-size:10px;letter-spacing:1.3px;color:#84a2a6;margin:16px 12px 10px}.sidebar>.nav-label{margin-top:0}.nav-count{font-size:11px;background:var(--amber);color:var(--teal);border-radius:6px;padding:0 5px;margin-left:auto}.profile{display:flex;gap:9px;margin-top:auto;padding:28px 7px 0;align-items:center;font-size:13px}.profile strong{display:block;color:#f1f6f6;font-weight:500;max-width:110px;overflow-wrap:anywhere}.profile small{font-size:10px;color:#9bb4b7;display:block}.profile a{color:#9bb4b7;font-size:10px}.avatar{width:33px;height:33px;border-radius:50%;background:#426468;color:#fff;display:grid;place-items:center;flex-shrink:0}.logout{border:0;background:transparent;color:#b2c8ca;font-size:24px;padding:4px}.mobile-header,.nav-backdrop{display:none}.workspace{margin-left:var(--sidebar);padding:30px 32px 0;min-height:100vh}.workspace-footer{display:flex;justify-content:space-between;gap:16px;color:#8b999c;font-size:11px;padding:32px 0 18px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.page-heading p.muted{margin-top:8px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.5px;color:#7c9395;margin-bottom:9px}.heading-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border-radius:8px;border:1px solid #d8e1e1;background:#fff;color:var(--ink);font-size:14px;font-weight:550;line-height:1.3;text-align:center;white-space:nowrap}.button:hover{background:#eaf1ef;text-decoration:none;border-color:#bed0ce}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:#275257}.button.small{padding:7px 11px;min-height:35px;font-size:13px}.button.subtle{background:transparent;border-color:transparent;color:var(--muted)}.button.wide{width:100%;justify-content:space-between}.button.selected{background:#e5efec}.text-button{border:0;background:transparent;color:#2c7366;padding:4px 0;font-size:12px;min-height:28px}.count{display:inline-block;vertical-align:middle;font-size:14px;letter-spacing:0;padding:4px 9px;border-radius:7px;background:#e4ecea;color:#536e69;margin-left:5px}.muted{color:var(--muted);font-size:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.section-panel{margin-top:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 22px}.padded{padding:20px 24px}.notice{padding:13px 18px;border:1px solid #abd2c3;background:#ebf6f0;color:#275e4b;border-radius:10px;margin-bottom:20px;font-size:14px}.notice.error{border-color:#e1b8b5;background:#fff1ee;color:#923b34}.notice.info{background:#edf4fb;border-color:#c4d9e5;color:#315a6c}.errorlist{list-style:none;padding:11px 13px;margin:8px 0;color:#a23531;font-size:14px;background:#fff0ed;border-radius:7px}.errorlist li+li{margin-top:6px}
.filter-panel{padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px}.filter-main{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-main>input,.filter-main>select{width:auto;flex:1;min-width:140px}.filter-main>label{font-size:13px;color:var(--muted);flex:1;min-width:130px}.search-input{display:flex;align-items:center;position:relative;flex:2;min-width:240px}.search-input span{position:absolute;left:13px;font-size:25px;color:#8c9b9d;line-height:1}.search-input input{padding-left:37px}.filter-main select{font-size:14px}.advanced-filters{margin-top:11px}.advanced-filters summary{color:#617b7d;font-size:12px;cursor:pointer;max-width:max-content}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.filter-grid label{font-size:12px;color:#677d7f;display:flex;flex-direction:column;gap:4px}.filter-grid input,.filter-grid select{font-size:13px}.filter-grid .check-label,.check-label{display:flex;gap:8px;align-items:center;flex-direction:row;font-size:13px;color:var(--muted);cursor:pointer}.filter-secondary{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-size:13px}.filter-secondary>select{width:auto;font-size:13px}.filter-secondary>label:not(.check-label){display:flex;align-items:center;gap:5px}.filter-secondary input[type=date]{width:160px;font-size:13px}.quick-filters{display:flex;gap:8px;overflow-x:auto;margin:17px 0;scrollbar-width:thin;padding-bottom:3px}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #d9e3e1;border-radius:7px;padding:7px 13px;font-size:12px;color:#617775;white-space:nowrap;background:#fff}.chip:hover{text-decoration:none;border-color:#8eaaa2}.chip.selected{background:#e1eee9;color:#205c4f;border-color:#aecabd;font-weight:600}.dot{display:inline-block;height:7px;width:7px;border-radius:50%;background:#819196}.dot.green{background:#428a70}.dot.amber{background:#d5a140}.dot.red{background:#c85952}
.map-workspace{display:grid;grid-template-columns:335px minmax(0,1fr);height:calc(100vh - 268px);min-height:430px;max-height:900px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.map-list{overflow:auto;border-right:1px solid var(--line);z-index:1}.map-list-title{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line);background:#fff;z-index:2;font-size:13px}.map-list-title span{font-size:12px}.map-list-title strong span{color:var(--muted);margin-left:6px}.station-row{padding:20px 18px 16px;border-bottom:1px solid #e7eeec;transition:background .15s}.station-row:hover{background:#f8fbfa}.station-row-top{display:flex;gap:8px;align-items:flex-start}.station-row-top>a{font-size:15px;color:#254b4b;font-weight:650}.status-dot{background:#45937b;width:8px;height:8px;border-radius:50%;margin-top:7px;flex-shrink:0}.status-dot.warning,.status-dot.partial{background:#d8a043}.status-dot.stopped{background:#cf615d}.status-dot.rebuild{background:#5c82af}.priority-star{color:#bd923d;font-size:14px;margin-left:auto}.station-row>p{font-size:12px;color:#819191;padding:6px 0 12px 16px}.station-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:5px}.station-row-meta{display:flex;gap:8px;justify-content:space-between;margin-top:13px;color:#8b999b;font-size:11px}.badge{display:inline-block;padding:3px 9px;font-size:11px;font-weight:550;line-height:1.5;border-radius:5px;background:#edf2f2;color:#597070;white-space:nowrap}.state-ok{background:#e5f2ec;color:#35775f}.state-warning,.state-partial,.state-wait_parts,.state-review{background:#fbf0d7;color:#956d24}.state-stopped,.danger{background:#fde9e7;color:#ab4640}.state-rebuild{background:#e8eff8;color:#557ea1}.loaner{background:#ede8fa;color:#7154a6}.danger-text{color:var(--red)!important}.title-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.map-pane{position:relative;min-width:0;background-color:#edf0e8;background-image:linear-gradient(#dce3d5 1px,transparent 1px),linear-gradient(90deg,#dce3d5 1px,transparent 1px);background-size:70px 70px}.map-pane #station-map{height:100%;width:100%;z-index:1}.map-message{position:absolute;z-index:5;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 64px);max-width:420px;background:#fff;border:1px solid #d7e2dc;box-shadow:0 12px 40px #263f3020;border-radius:12px;padding:30px;text-align:center}.map-message-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 15px;background:#e8f1eb;border-radius:50%;font-size:35px;color:#548677}.map-message h2{font-size:20px}.map-message p{font-size:13px;color:var(--muted);margin:12px 0;line-height:1.8}.map-message small{font-size:11px}.map-legend{position:absolute;bottom:35px;right:12px;z-index:400;background:#fffffff2;border:1px solid #dbe3de;border-radius:7px;padding:8px 12px;display:flex;gap:13px;font-size:10px;color:#657b74;pointer-events:none}.map-legend span{display:flex;align-items:center;gap:5px}.map-hint{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:#fffffff2;border:1px solid #dce4de;border-radius:6px;padding:8px 12px;z-index:400;font-size:11px;color:#5c746d;text-align:center;max-width:80%;pointer-events:none}.map-mobile-toggle{display:none}.small-note{font-size:12px;margin-top:12px}.solar-marker{width:26px!important;height:26px!important;border-radius:50% 50% 50% 3px;transform:rotate(-45deg);border:3px solid #fff;background:#40816b;box-shadow:0 3px 8px #163e3440}.solar-marker.warning,.solar-marker.partial{background:#d5a448}.solar-marker.stopped{background:#c45048}.solar-marker.rebuild{background:#5d81af}.solar-marker.high::after{content:"";position:absolute;width:8px;height:8px;background:white;border-radius:50%;top:6px;left:6px}.map-popup{font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-width:220px;max-width:300px}.map-popup h3{font-size:17px;margin:4px 0 8px;color:#1c4141}.map-popup p{margin:7px 0!important;color:#617673}.map-popup .button{margin-top:12px;width:100%;color:#fff}.map-popup .phone{display:block;margin-top:9px;font-weight:600}
.empty{padding:46px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;min-height:180px;color:var(--muted);font-size:13px}.empty strong{font-size:17px;color:#3c5d59;font-weight:600}.empty .button{margin-top:4px}.empty-symbol{display:grid;place-items:center;border-radius:50%;width:40px;height:40px;background:#e9f0ed;font-size:24px;color:#567970}.empty-map{width:44px;height:44px;stroke:#7e9e93;stroke-width:1;margin-bottom:8px}.map-list>.empty{padding:56px 24px}.map-list .empty>span{max-width:230px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#f7faf9;color:#6f8582;font-size:10px;letter-spacing:.3px;font-weight:600;padding:13px 18px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 18px;border-bottom:1px solid #edf1f0;vertical-align:top;min-width:90px;max-width:440px;overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfc}.row-title{font-weight:600;color:#2d5750}td small{display:block;font-size:11px;margin-top:4px;min-width:140px}td .badge{font-size:10px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin:24px 0;font-size:13px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.metric{background:white;border:1px solid var(--line);border-radius:12px;padding:23px;display:flex;flex-direction:column;gap:12px;color:var(--ink)}.metric:hover{border-color:#b4cbc2;text-decoration:none}.metric>span{font-size:13px;color:#637b76}.metric strong{font-size:42px;line-height:1.1;font-weight:550;letter-spacing:-1.5px}.metric small{font-size:11px}.metric-red{color:#b3554b}.metric-amber{color:#a27a39}.metric-blue{color:#45767d}.metric-green{color:#398773}
.form-panel{max-width:1020px;padding:28px}.form-hint{margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:22px;color:#687f7b;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 28px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:14px;color:#43635d;font-weight:550}.field .required{color:#ac7862}.field-wide{grid-column:1/-1}.field-checkbox{align-self:center;display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center}.help-text{font-size:12px;color:#87938f;line-height:1.6}.help-text ul{margin:3px 0;padding-left:17px}.form-actions{border-top:1px solid var(--line);padding-top:24px;margin-top:30px;display:flex;gap:10px;flex-wrap:wrap}.form-actions .button.primary{min-width:140px}.station-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.station-shortcuts .button{font-size:12px}.details-panel{margin-top:20px}.details-panel>summary{padding:19px 22px;font-size:17px;font-weight:600;cursor:pointer}.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px 24px 24px;gap:24px 32px;margin:0}.details-grid dt{font-size:11px;color:#899893;margin-bottom:5px}.details-grid dd{margin:0;font-size:14px;overflow-wrap:anywhere;line-height:1.6}.clock-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:23px 0}.clock-strip>div{padding:0 22px;border-right:1px solid var(--line)}.clock-strip>div:last-child{border:0}.clock-strip small{font-size:11px;display:block;margin-bottom:5px}.clock-strip strong{font-size:21px;font-weight:550}.status-panel{padding:22px}.status-panel>p{font-size:13px;color:var(--muted);margin-top:10px}.status-form{margin-top:16px}.status-form label{font-size:13px}.status-form .heading-actions{margin-top:12px}.checklist{padding:0 24px 24px;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.checklist>div{border-top:1px solid #edf1ed;padding:16px 0;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;font-size:13px}.checklist p{grid-column:1/-1;color:#7f8d88;font-size:12px}.mppt-grid{display:flex;gap:15px;flex-wrap:wrap;padding:0 23px 24px}.mppt-grid>div{padding:18px;background:#f5f8f6;border:1px solid #dde7e0;border-radius:8px;min-width:220px;flex:1}.mppt-grid p{font-size:13px;margin:12px 0}.file-links{padding:0 24px 24px;display:flex;flex-wrap:wrap;gap:18px}.file-links a{font-size:13px}.attachment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:0 24px 24px}.attachment-grid>.padded{grid-column:1/-1}.attachment{border:1px solid var(--line);border-radius:9px;overflow:hidden;min-width:0;background:#fff}.attachment img,.file-type{width:100%;height:150px;object-fit:cover;background:#f1f5f2;display:flex;justify-content:center;align-items:center;color:#8ba99c}.file-type svg{width:40px;height:40px;stroke-width:1.2}.attachment>div{padding:12px}.file-name{font-size:12px;display:block;margin:6px 0;overflow-wrap:anywhere}.attachment small{font-size:10px;display:block}.upload-form{border-top:1px solid var(--line);padding:20px 24px;background:#f9fbfa}.upload-controls{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.upload-controls>label:not(.file-picker){font-size:11px;max-width:220px;flex:1;min-width:130px}.upload-controls select{font-size:12px;margin-top:3px;max-width:220px}.file-picker{position:relative;overflow:hidden;cursor:pointer}.file-picker input{position:absolute;opacity:0;inset:0;width:100%;cursor:pointer}.upload-form .help-text{margin-top:12px}.upload-progress>div{font-size:12px;display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid #e5eee8;overflow-wrap:anywhere}.upload-progress>div:first-child{margin-top:15px}.upload-progress progress{max-width:150px;width:20%;accent-color:var(--green)}.upload-progress .upload-error{color:var(--red)}.comments{padding:0 24px 24px}.comments article{border-bottom:1px solid var(--line);padding:18px 0;font-size:14px}.comments article>div{display:flex;justify-content:space-between;gap:12px}.comments time{font-size:11px;color:#8b9b94}.comments p{margin-top:8px}.comments form{margin-top:24px}.comments form label{font-size:13px}.comments form .button{margin-top:10px}.timeline{padding:0 25px 24px}.timeline article{border-left:2px solid #dbe6df;margin-left:7px;padding:0 0 25px 23px;position:relative}.timeline-dot{position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:#71968a}.timeline strong{font-size:14px}.timeline small{display:block;font-size:11px;margin-top:5px}.timeline p{font-size:13px;margin:9px 0}.timeline summary{font-size:12px;color:#719188;cursor:pointer}.snapshot{font-size:11px;display:grid;grid-template-columns:160px 1fr;background:#f6f9f7;padding:12px;gap:8px;margin:8px 0;overflow-wrap:anywhere}.snapshot dd{margin:0}.audit-entries{padding:0 24px}.audit-entry{padding:20px 0;border-bottom:1px solid var(--line)}.audit-entry:last-child{border:0}.audit-entry-heading{display:flex;gap:14px;align-items:center;font-size:13px;flex-wrap:wrap}.audit-entry-heading time{font-size:11px;color:#87978e}.audit-entry>p{font-size:13px;color:#617f72;margin-top:5px}.audit-entry dl{margin:14px 0 0;font-size:12px;display:grid;grid-template-columns:180px 1fr;gap:7px 18px}.audit-entry dt{color:#799086}.audit-entry dd{margin:0;display:flex;gap:10px;overflow-wrap:anywhere;flex-wrap:wrap;white-space:pre-wrap}.old-value{color:#9aa8a1}.change-arrow{color:#a0b5aa}.archive-box{margin-top:25px;font-size:12px;color:#8a9992;padding:18px}.archive-box summary{cursor:pointer}.archive-box p{margin:12px 0}.archive-box input{font-size:13px}.notification-list>article{display:flex;align-items:center;gap:18px;padding:22px;border-bottom:1px solid var(--line);font-size:14px}.notification-list>article>div{flex:1}.notification-list>article>svg{color:#729083}.notification-list .unread{background:#f0f7f2}.notification-list .unread svg{color:#347b65}.notification-list p{margin-bottom:6px}
.auth-workspace{min-height:100vh;display:grid;place-items:center;padding:40px}.login-shell{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #dce7e2;border-radius:20px;overflow:hidden;width:100%;max-width:1080px;box-shadow:0 22px 60px #264d3710;min-height:630px}.login-story{background:var(--teal);color:#fff;padding:44px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.login-story .brand{margin:0 0 65px}.login-story .eyebrow{color:#a6c3bc;letter-spacing:1px;font-size:10px}.login-story h1{font-size:43px;line-height:1.22;font-weight:550;letter-spacing:-1px;margin-bottom:23px}.login-story p:not(.eyebrow){font-size:14px;color:#adc8c0;line-height:1.8}.solar-grid{position:absolute;bottom:-135px;right:-155px;transform:rotate(-24deg);width:360px;height:340px;background-image:linear-gradient(#67898133 1px,transparent 1px),linear-gradient(90deg,#67898133 1px,transparent 1px);background-size:47px 47px;border:1px solid #67898133;pointer-events:none}.login-form{padding:70px 52px;align-self:center}.login-form h2{font-size:29px;margin:0 0 13px;letter-spacing:-.5px}.login-form form{margin-top:28px}.login-form .field{margin-bottom:19px}.login-form .field input{min-height:49px}.login-form .button{min-height:49px;margin-top:7px}.login-help{font-size:12px;color:#8a9a91;margin-top:29px;line-height:1.8}
@media(min-width:1600px){.workspace{padding-left:42px;padding-right:42px}.map-workspace{grid-template-columns:365px minmax(0,1fr)}}
@media(max-width:1200px){:root{--sidebar:210px}.workspace{padding:24px 22px 0}.sidebar{padding:24px 10px 14px}.sidebar nav a{font-size:13px;gap:10px}.map-workspace{grid-template-columns:290px minmax(0,1fr)}.filter-grid{grid-template-columns:repeat(3,1fr)}.attachment-grid{grid-template-columns:repeat(3,1fr)}.page-heading{align-items:flex-start}.page-heading .heading-actions{max-width:330px;justify-content:flex-end}.details-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){:root{--sidebar:0px}.sidebar{width:250px;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none}.nav-backdrop.open{display:block;position:fixed;inset:0;background:#122e3777;z-index:999}.mobile-header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;background:var(--teal);color:#fff;position:sticky;top:0;z-index:600}.mobile-header>a{color:#e8f1eb;font-size:14px}.menu-toggle{background:none;color:#fff;border:0;font-size:24px;width:30px;padding:0}.workspace{padding:23px 20px 0}.map-workspace{height:650px;min-height:420px}.filter-grid{grid-template-columns:repeat(3,1fr)}.workspace-footer{flex-direction:column;gap:4px}.login-story{padding:34px}.login-story h1{font-size:36px}.login-form{padding:40px 32px}.auth-workspace{padding:24px}.clock-strip strong{font-size:17px}}
@media(max-width:650px){h1{font-size:25px}.workspace{padding:19px 14px 0}.page-heading{flex-direction:column;gap:17px;margin-bottom:18px}.page-heading .heading-actions{max-width:none;justify-content:flex-start;gap:7px}.page-heading .muted{font-size:12px}.eyebrow{font-size:9px;margin-bottom:6px}.filter-panel{padding:12px}.filter-main{gap:8px}.filter-main>.search-input{flex-basis:100%;min-width:0}.filter-main>select{width:100%;font-size:12px;min-width:115px}.filter-main>.button{flex:1}.filter-grid{grid-template-columns:1fr 1fr;gap:12px}.filter-grid select,.filter-grid input{font-size:12px;max-width:100%}.filter-main>label{min-width:100px}.filter-secondary>select{width:100%;max-width:100%}.quick-filters{margin:13px 0}.chip{font-size:11px;padding:7px 11px}.map-mobile-toggle{display:flex;margin-bottom:10px;background:#e9efec;padding:4px;border-radius:8px;gap:4px}.map-mobile-toggle button{flex:1;min-height:36px;border:0;background:transparent;font-size:12px}.map-mobile-toggle .selected{background:white}.map-workspace{grid-template-columns:1fr;height:60vh;min-height:360px;max-height:650px}.map-workspace[data-view=map] .map-list{display:none}.map-workspace[data-view=list] .map-pane{display:none}.map-list{border-right:0}.map-message{padding:20px;width:calc(100% - 32px)}.map-message h2{font-size:18px}.map-message p{font-size:12px}.map-hint{font-size:10px;padding:6px 10px;width:80%}.map-legend{font-size:9px;gap:9px;bottom:32px;right:8px}.small-note{font-size:11px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:18px 15px;gap:10px}.metric>span{font-size:12px;min-height:36px}.metric strong{font-size:34px}.metric small{font-size:10px}.section-heading{padding:17px 16px}.section-heading h2{font-size:16px}.section-heading .button{font-size:11px}th{padding:11px 14px}td{padding:15px 14px;font-size:12px}.form-panel{padding:20px 16px}.form-grid{grid-template-columns:1fr;gap:20px}.field-wide{grid-column:auto}.field label{font-size:13px}input,select,textarea{font-size:16px}.form-actions .button{flex:1}.form-hint{font-size:13px}.details-grid{grid-template-columns:1fr 1fr;padding:0 16px 20px;gap:20px 18px}.details-grid dd{font-size:12px}.details-grid dt{font-size:10px}.details-panel>summary{padding:16px;font-size:16px}.clock-strip{grid-template-columns:1fr 1fr;gap:20px 0;padding:20px 0}.clock-strip>div{padding:0 16px}.clock-strip>div:nth-child(2){border-right:0}.clock-strip strong{font-size:17px}.clock-strip small{font-size:10px}.status-panel{padding:16px}.status-panel h2{font-size:16px}.status-form .filter-main input{flex-basis:100%}.checklist{grid-template-columns:1fr;padding:0 16px 16px}.attachment-grid{grid-template-columns:1fr 1fr;padding:0 16px 16px;gap:10px}.attachment img,.file-type{height:120px}.attachment>div{padding:9px}.file-name{font-size:11px}.attachment small{font-size:9px}.upload-form{padding:16px}.upload-controls{gap:8px}.upload-controls>label:not(.file-picker){max-width:none;min-width:120px}.upload-controls select{max-width:100%;font-size:13px}.upload-controls .button{flex:1;min-width:120px}.upload-progress>div{flex-wrap:wrap}.comments{padding:0 16px 16px}.comments article>div{flex-wrap:wrap;gap:4px}.timeline{padding:0 18px 20px}.timeline strong{font-size:13px}.snapshot{grid-template-columns:1fr;gap:4px}.snapshot dt{color:#81968b;margin-top:7px}.audit-entries{padding:0 16px}.audit-entry dl{grid-template-columns:1fr;gap:4px}.audit-entry dt{margin-top:9px}.audit-entry dd{font-size:11px}.audit-entry-heading{gap:8px;font-size:12px}.audit-entry-heading time{font-size:10px}.notification-list>article{padding:16px;gap:12px;flex-wrap:wrap}.notification-list>article>div{min-width:200px}.notification-list form{margin-left:33px}.auth-workspace{padding:18px;min-height:100svh}.login-shell{grid-template-columns:1fr;min-height:0;border-radius:16px}.login-story{padding:28px}.login-story>.brand{margin:0}.login-story>div:not(.brand){display:none}.login-story>.brand img{height:40px;width:40px}.login-form{padding:30px 26px 36px}.login-form h2{font-size:26px}.login-form .eyebrow{font-size:9px}.login-form .muted{font-size:13px}.login-help{margin-top:24px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:650px){
  .record-table,.record-table tbody{display:block;width:100%}
  .record-table thead{display:none}
  .record-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:17px 16px;gap:14px 18px;border-bottom:1px solid var(--line)}
  .record-table tr:last-child{border-bottom:0}
  .record-table td{display:block;padding:0;border:0;min-width:0;max-width:none;font-size:12px}
  .record-table td:first-child{grid-column:1/-1;font-size:15px}
  .record-table td:not(:first-child)::before{content:attr(data-label);display:block;font-size:10px;color:#82968c;margin-bottom:4px}
  .record-table .badge{white-space:normal}
}
.map-message-icon svg{width:29px;height:29px;stroke-width:1.5}

/* Stations awaiting installation: blue status and a distinct helmet marker. */
.state-preparation{background:#e5efff;color:#2059a8}
.state-survey{background:#f0e9fa;color:#7041a1}
.status-dot.survey,.dot.survey{background:#8853ba}
.solar-marker.survey{width:34px!important;height:34px!important;border-radius:9px;background:#8853ba;display:grid;place-items:center}
.solar-marker.survey svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.solar-marker.survey.high::after{width:6px;height:6px;top:-3px;left:auto;right:-3px;border:1px solid #8853ba}
.marker-cluster.cluster-survey{background:#8853ba40;border-radius:10px}
.marker-cluster.cluster-survey div{background:#8853ba;color:#fff;border-radius:7px}
.status-dot.preparation,.dot.preparation{background:#2776da}
.solar-marker.preparation{width:34px!important;height:34px!important;border-radius:9px;background:#2776da;display:grid;place-items:center}
.solar-marker.preparation svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.solar-marker.preparation.high::after{width:6px;height:6px;top:-3px;left:auto;right:-3px;border:1px solid #2776da}
.marker-cluster.cluster-preparation{background:#2776da40;border-radius:10px}
.marker-cluster.cluster-preparation div{background:#2776da;color:#fff;border-radius:7px}
.map-legend{flex-wrap:wrap;max-width:calc(100% - 24px)}
/* Every gallery uses bounded thumbnails, including links without an attachment card. */
.attachment-grid>*{min-width:0;overflow-wrap:anywhere}
.attachment-grid>a[data-photo],.attachment-grid>article>a[data-photo]{display:block;max-width:100%}
.attachment-grid img{display:block;width:100%;max-width:100%;height:150px;object-fit:cover;border-radius:8px}
.attachment-category>h3{margin:0;padding:0 22px 12px;font-size:16px;overflow-wrap:anywhere}
.attachment-category+.attachment-category{padding-top:20px;border-top:1px solid var(--line)}
.padded .attachment-category>h3{padding-left:0;padding-right:0}
.padded .attachment-category .attachment-grid{padding-left:0;padding-right:0}
@media(max-width:700px){.attachment-category>h3{padding-left:16px;padding-right:16px}}
/* Password eye: a persistent click toggle with a touch-sized target. */
.password-field{position:relative;min-width:0;width:100%}
.password-field>input{padding-right:52px}
.password-field>input::-ms-reveal,.password-field>input::-ms-clear{display:none}
.password-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:44px;min-height:42px;border:0;border-radius:7px;background:transparent;color:#43635d;display:flex;align-items:center;justify-content:center;padding:10px}
.password-toggle:hover{background:#e8f1ed}
.password-toggle[aria-pressed="true"]{color:#205c4f;background:#e1eee9}
.password-toggle svg,details[data-password-disclosure]>summary svg{width:22px;height:22px;flex-shrink:0}
.password-toggle[aria-pressed="false"] .password-eye-slash,details[data-password-disclosure]:not([open]) .password-eye-slash{display:none}
details[data-password-disclosure]>summary{display:flex;align-items:center;gap:8px;cursor:pointer;min-height:44px;list-style:none}
details[data-password-disclosure]>summary::-webkit-details-marker{display:none}

/* Compact, independent station sorting; filters remain collapsed. */
.station-sorting{margin:6px 0 10px;font-size:13px;max-width:100%}
.station-sorting summary{cursor:pointer;color:var(--primary,#173b40);width:fit-content;padding:4px 0}
.station-sorting nav{display:flex;flex-wrap:wrap;gap:4px;padding:8px;background:#fff;border:1px solid #dbe5e7;border-radius:8px}
.station-sorting nav a{padding:5px 8px;border-radius:5px;color:#173b40}
.station-sorting nav a[aria-current]{background:#e8f3ef;font-weight:600}
.record-table th a{display:inline-flex;align-items:center;gap:4px;color:inherit}
[data-equipment-row][hidden]{display:none!important}
.audit-entry dd{overflow-wrap:anywhere;white-space:pre-line}

.work-categories{align-items:center;gap:8px;margin:12px 0}.work-categories label{cursor:pointer}.work-categories input{width:16px;height:16px;margin:0 5px 0 0;accent-color:var(--teal,#173b40)}.work-categories .help-text{margin:0}.work-categories [name=csrfmiddlewaretoken]{display:none}[data-work-category][hidden]{display:none!important}

.state-approval{background:#fff0d4;color:#855409}.status-dot.approval,.dot.approval{background:#c18516}.solar-marker.approval{background:#c18516}.state-installation{background:#dff4ed;color:#14644c}.status-dot.installation,.dot.installation{background:#218566}.solar-marker.installation{background:#218566}.marker-cluster.cluster-approval{background:#c1851640}.marker-cluster.cluster-approval div{background:#c18516;color:#fff}.marker-cluster.cluster-installation{background:#21856640}.marker-cluster.cluster-installation div{background:#218566;color:#fff}.map-legend{flex-wrap:wrap;max-width:calc(100% - 24px)}

.solar-marker.approval,.solar-marker.installation{width:34px!important;height:34px!important;border-radius:9px;display:grid;place-items:center}.solar-marker.approval svg,.solar-marker.installation svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.station-popup .map-popup{min-width:0;max-width:100%;overflow-wrap:anywhere;font-size:14px}
.station-popup .leaflet-popup-content{margin:12px 28px 12px 14px;overflow-x:hidden;overscroll-behavior:contain}
.station-popup .map-popup h3{font-size:16px;line-height:1.3;margin:0 0 6px}
.station-popup .map-popup-address{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.station-popup .map-popup p{margin:6px 0!important}.station-popup .map-popup .button{margin-top:10px;min-height:42px;display:flex;align-items:center;justify-content:center}
.station-popup .map-popup details{margin-top:8px}.station-popup .map-popup summary{cursor:pointer;padding:4px 0;color:#526a68;font-size:12px}
@media(max-width:600px){.station-popup .leaflet-popup-content-wrapper{border-radius:12px}.station-popup .leaflet-popup-close-button{width:32px!important;height:32px!important;line-height:32px!important}.photo-picker .help-text:empty{display:none}}

/* Compact payment history, shared with the native website. */
.payment-row{padding:10px 0;border-bottom:1px solid var(--border,#d8e3e4);overflow-wrap:anywhere}.payment-row strong,.payment-row small{display:block}.payment-row details{margin:6px 0}.payment-totals{font-weight:600;font-variant-numeric:tabular-nums}[data-payment-editor] .form-grid{margin:10px 0}[data-payment-error]:empty{display:none}
/* Message controls remain reachable even for a long handover validation list. */
.dismissible-notice { position: relative; padding-right: 48px !important; }
.dismissible-notice > .notice-close { position: absolute; top: 2px; right: 2px; width: 40px; height: 40px; min-height: 40px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: inherit; font-size: 26px; line-height: 1; cursor: pointer; }
.dismissible-notice > .notice-close:hover { background: rgba(0,0,0,.08); }
.dismissible-notice > .notice-close:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
.native-toast.dismissible-notice { max-height: min(42vh,320px); overflow-y: auto; overscroll-behavior: contain; }
.dismissible-notice[hidden] { display: none !important; }

.installation-crew-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.installation-crew-columns fieldset{min-width:0;margin:0;padding:.8rem;border:1px solid #ccd8da;border-radius:8px}.installation-crew-columns legend{font-weight:700;padding:0 .3rem}.installation-crew-columns label{display:flex;align-items:center;gap:.5rem;margin:.4rem 0}.installation-crew-columns input{width:auto}@media(max-width:600px){.installation-crew-columns{grid-template-columns:1fr}}
