/* EV Site Planner workspace redesign, based on the workflow in Commercial Build 129. */
[hidden]{display:none!important}button:disabled{cursor:not-allowed;opacity:.5}
body{background:var(--page)}#evApp{display:grid;grid-template-columns:204px minmax(0,1fr);width:100%;height:100dvh;color:var(--ink);font-size:var(--text-sm)}#evApp *{box-sizing:border-box}.ev-sidebar{background:var(--ev-navy);color:#b9c8d6;display:flex;flex-direction:column;padding:28px 16px 18px;gap:20px;min-height:0;overflow:auto}.ev-brand{display:flex;gap:10px;align-items:center;color:white;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:-.3px;padding:0 6px 14px}.ev-brand img{width:36px;height:36px}.ev-brand small{display:block;color:#90a6ba;font-size:10px;letter-spacing:1.8px;font-weight:600;margin-top:3px}.ev-sidebar button,.ev-sidebar a.ev-nav{color:inherit;font-size:var(--text-ui);text-decoration:none;display:flex;align-items:center;gap:11px;min-height:43px;padding:11px 13px;border-radius:8px;text-align:left;width:100%;font-weight:550}.ev-sidebar button:hover,.ev-sidebar a.ev-nav:hover{background:#ffffff0d;color:white}.ev-sidebar button[aria-current=page]{background:var(--ev-sky);color:#0f2436;font-weight:700}.ev-nav-icon{width:18px;height:18px;flex:none}.ev-nav-caption{padding:0 13px;color:#7891a5;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}.ev-side-divider{height:1px;background:#ffffff16}.ev-sidebar nav{display:grid;gap:4px}.ev-sidebar .ev-sidebar-bottom{margin-top:auto;display:grid;gap:3px}.ev-build{font-size:10px;letter-spacing:.8px;color:#7f97aa;padding:10px 13px 0}.ev-main{min-width:0;display:flex;flex-direction:column;min-height:0}.ev-top{height:76px;flex:none;background:var(--top-bar);border-bottom:1px solid var(--card-line);display:flex;align-items:center;gap:16px;padding:0 30px}.ev-top-title{min-width:0;flex:1}.ev-top-title small{display:block;text-transform:uppercase;font-weight:600}.ev-top-title b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-pill{font-size:10px;padding:5px 9px;border-radius:5px;white-space:nowrap;background:#edf2f7;color:#536c81;font-weight:650}.ev-pill.green{color:#3b632d;background:#eef6dc}.ev-pill.amber{color:#98611c;background:#fff2dc}.ev-save{display:flex;gap:6px;align-items:center;white-space:nowrap}.ev-save:before{content:'';width:6px;height:6px;background:#7aa572;border-radius:50%}.ev-save[data-state=error]{color:#b13d35}.ev-save[data-state=error]:before{background:#b13d35}.ev-save[data-state=pending]{color:#8e732e}.ev-save[data-state=pending]:before{background:#bf9b43}.ev-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfdbe5;background:white;color:var(--ink);text-decoration:none;line-height:1.35}.ev-btn:hover{border-color:#90abc9;background:#f7faff}.ev-btn.primary{color:white;background:var(--accent);border-color:var(--accent)}.ev-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.ev-btn.lime{background:var(--ev-sky);color:#0f2436;border-color:var(--ev-sky)}.ev-btn.quiet{border:0;background:transparent;color:var(--accent);padding:7px 0}.ev-btn svg{width:16px;height:16px;flex:none}.ev-icon-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:7px;background:#f3f5f8}.ev-icon-btn svg{width:18px;height:18px}#evContent{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}#evScreen{overflow:auto;flex:1;min-height:0;padding:34px 38px 50px;scrollbar-gutter:stable}.ev-page{max-width:1280px;margin:0 auto}.ev-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:26px}.ev-heading h1{font-size:29px;letter-spacing:-1px;line-height:1.15;font-weight:700;margin:0 0 9px}.ev-heading p{color:var(--dim);font-size:var(--text-ui);line-height:1.6;max-width:660px}.ev-eyebrow{text-transform:uppercase;font-weight:700}.ev-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.ev-hero{display:grid;grid-template-columns:1fr 230px;gap:24px;align-items:center;background:var(--ev-navy);border-radius:12px;padding:31px 32px;color:white;margin-bottom:24px;overflow:hidden;position:relative}.ev-hero h2{font-size:26px;letter-spacing:-.8px;line-height:1.2;margin:0 0 12px;max-width:520px}.ev-hero p{font-size:var(--text-ui);line-height:1.65;color:#acbfd0;max-width:520px;margin-bottom:21px}.ev-hero .ev-eyebrow{color:#8cbcff}.ev-hero-art{width:100%;max-height:160px}.ev-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:0 0 24px}.ev-stat{background:white;border:1px solid var(--line);border-radius:9px;padding:18px 20px}.ev-stat label{display:block;font-weight:600}.ev-stat b{display:block;font-size:27px;font-weight:650;letter-spacing:-1px;margin:9px 0 5px}.ev-stat small{color:var(--dim);font-size:var(--text-2xs)}.ev-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:20px}.ev-card{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:18px}.ev-card-head{display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid #edf0f4;padding:17px 21px}.ev-card h2,.ev-section-title{font-size:var(--text-sm);font-weight:650;letter-spacing:-.2px;margin:0}.ev-card-body{padding:20px 21px}.ev-kv{display:grid;grid-template-columns:115px minmax(0,1fr);gap:14px 12px;font-size:var(--text-xs);margin:0}.ev-kv dt{color:var(--dim)}.ev-kv dd{line-height:1.5;overflow-wrap:anywhere;margin:0;white-space:pre-line}.ev-muted{color:var(--dim)}.ev-small{font-size:var(--text-xs);line-height:1.65}.ev-steps{display:grid;gap:0}.ev-step{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid #edf0f4}.ev-step:last-child{border:0;padding-bottom:0}.ev-step:first-child{padding-top:0}.ev-step-num{flex:none;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:var(--text-2xs);font-weight:700;background:#eef2f6;color:#738292}.ev-step.done .ev-step-num{background:#ecf4df;color:#547833}.ev-step h3{font-size:var(--text-xs);margin:2px 0 5px}.ev-step p{font-size:var(--text-2xs);color:var(--dim);line-height:1.6}.ev-step-copy{flex:1}.ev-step .ev-btn{font-size:var(--text-2xs);min-height:30px;padding:6px 10px}.ev-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.ev-thumb{padding:0;text-align:left;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#f8fafc;min-width:0}.ev-thumb img{width:100%;height:105px;object-fit:cover;display:block}.ev-thumb span{display:block;padding:9px;font-size:var(--text-2xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-empty{padding:30px 20px;text-align:center;color:var(--dim);font-size:var(--text-xs);line-height:1.7}.ev-empty svg{width:32px;height:32px;color:#879aad;margin:0 auto 13px;display:block}.ev-empty b{display:block;color:var(--ink);font-size:var(--text-sm);margin-bottom:5px}.ev-empty .ev-actions{justify-content:center;margin-top:16px}.ev-filter{display:flex;align-items:center;gap:12px;margin:24px 0 17px}.ev-input,.ev-select{font:inherit;font-size:var(--text-xs);padding:11px 12px;border:1px solid var(--field-border);border-radius:7px;background:white;color:var(--ink);min-width:0}.ev-filter input{flex:1;max-width:380px}.ev-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ev-project{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}.ev-project-preview{height:122px;display:flex;align-items:center;justify-content:center;background:#e9eff4;background-image:linear-gradient(#dce5ed80 1px,transparent 1px),linear-gradient(90deg,#dce5ed80 1px,transparent 1px);background-size:18px 18px}.ev-project-preview img{width:100%;height:100%;object-fit:cover}.ev-project-preview svg{width:35px;height:35px;color:#869bb0}.ev-project-copy{padding:17px 18px}.ev-project-copy h2{font-size:15px;letter-spacing:-.3px;margin:12px 0 7px;overflow-wrap:anywhere}.ev-project-copy p{font-size:var(--text-2xs);color:var(--dim);line-height:1.6;min-height:34px}.ev-project-foot{border-top:1px solid var(--line);padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--text-2xs);color:var(--dim)}.ev-project-foot button{font-weight:650;font-size:var(--text-2xs);color:var(--accent)}.ev-outs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:26px}.ev-out{background:white;border:1px solid var(--line);border-radius:10px;padding:23px;display:flex;flex-direction:column;align-items:flex-start;gap:13px}.ev-out>svg{width:25px;height:25px;color:#346da7;margin-bottom:7px}.ev-out h2{font-size:var(--text-sm);letter-spacing:-.2px}.ev-out p{font-size:var(--text-xs);line-height:1.65;color:var(--dim);flex:1}.ev-out .ev-btn{margin-top:5px}.ev-table-wrap{overflow:auto}.ev-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-xs)}.ev-table th{font-weight:650;letter-spacing:.7px;text-transform:uppercase;background:#fafbfd}.ev-table th,.ev-table td{padding:14px 20px;border-bottom:1px solid var(--line);vertical-align:middle}.ev-table tr:last-child td{border-bottom:0}.ev-table td small{display:block;color:var(--dim);font-size:10px;line-height:1.5;margin-top:5px}.ev-notice{background:#edf3fd;border:1px solid #d7e4fa;border-radius:8px;padding:13px 16px;color:#4c6785;font-size:var(--text-xs);line-height:1.7;margin-bottom:23px}.ev-programme{max-width:none!important;width:100%!important;box-shadow:none!important;border:1px solid var(--line)!important;background:white!important;border-radius:10px!important;margin:0!important;padding:24px!important;max-height:none!important}.ev-programme #progBody{max-height:none!important;overflow:visible!important}.ev-programme .wlc-head p{max-width:770px;line-height:1.6}.ev-programme #progClose{display:none}.ev-programme #progBody>div{padding-top:12px!important;padding-bottom:12px!important}
/* Existing drawing engine in the new project shell. */
#evCanvasHost{display:flex;flex-direction:column;flex:1;min-height:0}#evWorkbench{padding:9px 14px;box-shadow:none;min-height:55px;background:#fff;border-bottom:1px solid var(--line);z-index:40;gap:6px}#evWorkbench>.brand,#evWorkbench>#modeSeg,#evWorkbench>.sitewrap,#evWorkbench>.spacer{display:none!important}#evWorkbench .hbtns{flex:1;min-width:0;flex-wrap:nowrap;gap:7px}#evWorkbench .hfile,#evWorkbench .htools,#evWorkbench #btnFind,#evWorkbench #btnExport{display:none!important}#evWorkbench .hgrp{flex:none;border:0;background:transparent}#evWorkbench .hgrp .hbtn{padding:5px 7px}#evWorkbench .hgrp .btn-label{display:none}#evWorkbench .hgrp .hbtn+.hbtn{border:0}#evWorkbench .catbar{padding:0;min-width:0;flex:1;background:transparent;border:0;gap:2px;z-index:auto}#evWorkbench .ptools{width:auto;gap:2px;margin-right:6px}#evWorkbench .ptool{width:30px;height:32px;border-radius:6px}#evWorkbench .ptool svg{width:17px;height:17px}#evWorkbench .cattab{padding:7px 8px;border-radius:6px;font-size:var(--text-xs);gap:4px}#evWorkbench .cattab>svg{width:14px;height:14px}#evWorkbench .catdiv{margin:3px 6px 3px 0}#evWorkbench .cattab.on{background:#eaf1ff;border-color:#cdddfa;color:#1e56a8;box-shadow:none}#evWorkbench .sidetoggle{display:flex!important;width:32px;padding:6px}#evWorkbench .hbtn{border-radius:6px}.ev-tech{position:relative;flex:none}.ev-tech-menu{position:fixed;width:260px;z-index:180;background:white;border:1px solid var(--line);border-radius:9px;padding:6px;box-shadow:0 12px 40px #17304a22}.ev-tech-menu button{display:block;width:100%;text-align:left;padding:11px;font-size:var(--text-xs);border-radius:5px}.ev-tech-menu button:hover{background:#f1f5fc}.ev-tech-menu small{display:block;font-size:10px;color:var(--dim);margin-top:4px}#root .rail{width:220px;background:#f7f9fb}#root .palhead{background:#f7f9fb}#root .tool{border-radius:7px}#root .side{width:305px;background:#f7f9fb}#root .card{border-radius:8px}#root .stage{background:#e3e9ef}#root .hint{background:#f8fafc;color:#63788b;border-top:1px solid var(--line)}#root .hint b{color:#324d67}#root .empty{color:var(--ink)}#root .empty h2{color:var(--ink);font-size:25px;letter-spacing:-.8px}#root .empty p{color:#6b7e8f}#root .empty .big{color:#647f98;background:#d4dfea}#root .starts{max-width:560px}#root .startcard{background:#f9fbfd;color:var(--ink);border:1px solid #c7d4df;border-radius:10px}#root .startcard small{color:#748696}#root .startcard.primary{background:var(--accent);border-color:var(--accent);color:#fff}#root .startcard.primary small{color:#d1e2ff}#root .startcard .sc-ic{color:inherit}#root .empty .fine{font-size:var(--text-2xs)}#evPlanStrip{height:45px;display:flex;align-items:center;gap:9px;background:#fff;border-bottom:1px solid var(--line);padding:0 15px;flex:none}#evPlanStrip select{font-size:var(--text-2xs);border:0;background:transparent;max-width:320px;min-width:100px;color:var(--ink);font-weight:600;padding:7px}#evPlanStrip .ev-btn{font-size:var(--text-xs);min-height:27px;padding:5px 9px}#evPlanStrip .ev-plan-meta{margin-left:auto}#evPlanStrip>svg{width:16px;height:16px;color:#7a90a3}#side .snav button{font-size:10px}.rx{width:min(1320px,96vw)!important;height:min(850px,90vh)!important;max-width:96vw!important;max-height:94vh!important;resize:both;overflow:hidden}.rx.rz-max{width:98vw!important;height:96vh!important}.ev-maximise{margin-left:auto}#runtimeWarning{z-index:500}
/* Shared project drawer and the plan issue review. */
.ev-backdrop{position:fixed;inset:0;background:#10263888;backdrop-filter:blur(3px);z-index:160;display:flex;align-items:center;justify-content:center;padding:24px}.ev-dialog{width:680px;max-width:100%;max-height:94dvh;background:#fff;border-radius:14px;display:flex;flex-direction:column;box-shadow:0 30px 100px #09213955;overflow:hidden}.ev-dialog-head{padding:23px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.ev-dialog-head h2{font-size:19px;letter-spacing:-.5px;margin:0 0 5px}.ev-dialog-head p{font-size:var(--text-xs);color:var(--dim);line-height:1.5}.ev-dialog-body{padding:26px;overflow:auto}.ev-dialog-foot{padding:17px 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fafbfd}.ev-dialog-steps{display:flex;gap:8px;padding:17px 26px 0}.ev-dialog-steps button{flex:1;padding:10px;font-size:var(--text-2xs);border-bottom:2px solid var(--line);text-align:left;font-weight:600;color:var(--dim)}.ev-dialog-steps button.on{border-color:var(--accent);color:var(--accent)}.ev-form{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px}.ev-field{display:flex;flex-direction:column;gap:8px;font-size:var(--text-2xs);font-weight:650}.ev-field.wide{grid-column:1/-1}.ev-field input,.ev-field select,.ev-field textarea{width:100%;font:inherit;font-weight:400;font-size:var(--text-ui);padding:12px;border-radius:7px;border:1px solid var(--field-border);background:#fff;color:var(--ink)}.ev-field input:focus,.ev-field textarea:focus,.ev-field select:focus{border-color:var(--accent)}.ev-field textarea{min-height:104px;resize:vertical;line-height:1.6}.ev-field small{font-weight:400;color:var(--dim);line-height:1.5}.ev-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:1/-1}.ev-mode-options button{text-align:left;border:1px solid var(--line);border-radius:9px;padding:17px;font-size:var(--text-ui);font-weight:650}.ev-mode-options button small{display:block;margin-top:7px;font-size:var(--text-2xs);color:var(--dim);font-weight:400;line-height:1.5}.ev-mode-options button.on{border-color:var(--accent);background:#eff5ff;color:#215da9}.ev-review-dialog{width:1220px;height:85vh;resize:both;min-height:400px;min-width:600px}.ev-review-grid{display:grid;grid-template-columns:285px minmax(0,1fr);flex:1;min-height:0}.ev-review-list{overflow:auto;padding:21px;border-right:1px solid var(--line)}.ev-review-list label{display:flex;align-items:flex-start;gap:9px;font-size:var(--text-xs);padding:13px 0;line-height:1.5;border-bottom:1px solid var(--line)}.ev-review-list input{margin-top:3px;accent-color:var(--accent)}.ev-review-list button{text-align:left;font-size:var(--text-xs)}.ev-review-list label.on{color:#1b5fbf}.ev-review-preview{background:#e3e9ef;display:flex;align-items:center;justify-content:center;padding:25px;overflow:auto}.ev-review-preview img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 5px 24px #17324b22}.ev-review-preview p{font-size:var(--text-ui);color:var(--dim)}.ev-note-count{font-size:var(--text-2xs);color:var(--dim)}.ev-mobile-toggle{display:none}
/* Phones: the sidebar is hidden, so the logo sits beside the menu button and always goes to Home */
.ev-top-logo{display:none}.ev-top-logo img{display:block;width:30px;height:30px}
@media(min-width:1600px){#evApp{grid-template-columns:220px minmax(0,1fr)}#evScreen{padding:40px 50px}#root .rail{width:248px}}
@media(max-width:1190px){#evApp{grid-template-columns:176px minmax(0,1fr)}.ev-sidebar{padding-left:10px;padding-right:10px}.ev-brand{font-size:var(--text-ui)}.ev-brand img{width:30px;height:30px}.ev-top{padding:0 22px;gap:10px}#evScreen{padding:27px 25px}.ev-projects,.ev-outs{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-save{display:none}.ev-columns{grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr)}#root .rail{width:198px}#evWorkbench .cattab>svg{display:none}.ev-hero{grid-template-columns:1fr 170px}.ev-hero h2{font-size:var(--text-2xl)}.ev-hero-art{max-height:140px}}
@media(max-width:960px){.ev-columns{grid-template-columns:1fr}.ev-stats{gap:9px}.ev-stat{padding:15px}.ev-top .ev-pill{display:none}.ev-hero-art{display:none}.ev-hero{grid-template-columns:1fr}#evWorkbench .ev-btn{font-size:var(--text-xs);padding:6px 9px}.ev-plan-meta{display:none}#evWorkbench .cattab{padding:7px 8px}}
@media(max-width:700px){#evApp{grid-template-columns:1fr}.ev-sidebar{position:fixed;inset:0 auto 0 0;width:230px;z-index:145;transform:translateX(-100%);transition:transform .2s}.ev-sidebar.open{transform:none;box-shadow:0 0 0 100vmax #142e4466}.ev-mobile-toggle{display:grid;flex:none}.ev-top-logo{display:block;flex:none}.ev-top{height:66px;padding:0 14px;gap:10px}.ev-top-title small{font-size:9px}.ev-top-title b{font-size:var(--text-ui)}.ev-top>#evEditTop{display:none}#evScreen{padding:24px 18px}.ev-heading{margin-bottom:20px;flex-wrap:wrap}.ev-heading h1{font-size:25px}.ev-heading p{font-size:var(--text-xs)}.ev-hero{padding:25px}.ev-hero h2{font-size:23px}.ev-stats{grid-template-columns:repeat(2,1fr);gap:10px}.ev-stat b{font-size:var(--text-2xl)}.ev-projects,.ev-outs{grid-template-columns:1fr}.ev-columns{gap:0}.ev-thumbs{grid-template-columns:repeat(2,1fr)}.ev-filter{gap:8px;flex-wrap:wrap}.ev-filter input{max-width:none}.ev-sidebar .ev-sidebar-bottom{padding-bottom:12px}.ev-dialog-head,.ev-dialog-body{padding:20px}.ev-backdrop{padding:12px}.ev-dialog-foot{padding:15px 20px}.ev-form{grid-template-columns:1fr;gap:16px}.ev-review-dialog{min-width:0;resize:none;height:93dvh}.ev-review-grid{grid-template-columns:1fr;grid-template-rows:160px 1fr}.ev-review-list{border-right:0;border-bottom:1px solid var(--line);padding:12px 18px}.ev-review-preview{padding:16px}.ev-dialog-foot .ev-note-count{max-width:110px}.ev-table th,.ev-table td{padding:12px}.ev-table{font-size:var(--text-2xs)}.ev-mode-options button{padding:12px;font-size:var(--text-xs)}#evWorkbench{padding:7px 8px}#evWorkbench .hbtns{gap:4px}#evWorkbench .ev-tech>.ev-btn{width:32px;padding:7px;font-size:0;gap:0}#evWorkbench .ev-tech>.ev-btn svg{width:16px}#evWorkbench .hgrp{display:none}#evPlanStrip{padding:0 10px}#evPlanStrip select{max-width:200px}#root .rail{position:absolute;left:0;top:0;bottom:0;z-index:30;width:224px;box-shadow:5px 0 24px #142a4022}#root .starts{gap:9px;max-width:100%}#root .startcard{flex:1 1 calc(50% - 5px);min-width:0;padding:13px 11px}#root .empty h2{font-size:22px}#root .empty .fine{max-width:310px}#root .empty>p{font-size:var(--text-xs);max-width:310px}.rx{resize:none;max-width:100vw!important;max-height:100dvh!important}.ev-kv{grid-template-columns:100px minmax(0,1fr)}}
.ev-heading h1:focus{outline:none}.ev-brand small{font-size:8px;letter-spacing:1px}.ev-empty .ev-btn svg{width:16px;height:16px;margin:0;color:inherit}.ev-empty .ev-btn{min-height:38px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Delivery workspace, R2. */
.ed-toolbar{display:flex;gap:22px;align-items:center;padding:18px 21px;flex-wrap:wrap}.ed-toolbar .ev-field{min-width:175px;max-width:240px}.ed-toolbar-copy{flex:1;min-width:180px}.ed-toolbar-copy b{display:block;font-size:var(--text-ui);margin-bottom:7px}.ed-toolbar-copy small{color:var(--dim);font-size:var(--text-2xs)}.ed-toolbar .ev-actions{margin-left:auto}.ed-help{font-size:var(--text-2xs);line-height:1.65;color:var(--dim);margin:10px 0 0}.ed-sr-only{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}.ed-dialog{width:860px;max-height:93dvh}.ed-dialog .ev-dialog-body{padding:23px 27px}.ed-dialog .ev-field select{background:white;border:1px solid var(--field-border);border-radius:7px;color:var(--ink);font:inherit;font-size:var(--text-ui);width:100%;padding:11px 12px;min-width:0}.ed-dialog .ev-dialog-foot{gap:20px}.ed-dialog .ev-dialog-foot .ed-help{margin:0;max-width:55%}.ed-subheading{font-size:var(--text-ui);margin:27px 0 13px;letter-spacing:-.2px}.ed-check{display:flex;align-items:flex-start;gap:9px;font-size:var(--text-xs);line-height:1.6;color:var(--ink)}.ed-check input{width:15px;height:15px;margin:2px 0 0;accent-color:var(--accent);flex:none}.ed-evidence{display:grid;grid-template-columns:1fr 1fr;gap:19px}.ed-evidence>div{border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.ed-evidence-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:var(--text-2xs)}.ed-evidence-head span{color:var(--dim);font-size:10px}.ed-evidence img{width:100%;height:180px;object-fit:contain;background:#f1f4f8;display:block;border-radius:5px}.ed-evidence .ev-actions{margin-top:10px}.ed-evidence label:focus-within{outline:3px solid var(--focus);outline-offset:3px}.ed-photo-empty{height:135px;border:1px dashed #cdd8e3;display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);color:var(--dim);background:#f8fafc;border-radius:5px}.ed-snag-filters{display:flex;gap:12px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.ed-snag-filters input{flex:1}.ed-snag-table td:first-child{max-width:370px;min-width:220px}.ed-snag-table td:first-child b{display:block;font-size:var(--text-xs);line-height:1.5;overflow-wrap:anywhere}.ed-ref{font-size:9px;color:var(--accent);font-weight:700;letter-spacing:1px;display:block;margin-bottom:5px}.ed-evidence-mini{display:flex;gap:5px}.ed-evidence-mini img,.ed-evidence-mini span{width:33px;height:27px;border:1px solid var(--line);border-radius:4px;object-fit:cover}.ed-evidence-mini span{display:grid;place-items:center;font-size:9px;color:#9eacb9;background:#f8fafc}.ed-overdue{color:#af572b!important}.ev-pill.red{color:#ab362b;background:#fbe9e5}.ed-report-dialog{width:1260px;height:92dvh}.ed-report-dialog>.ev-dialog-body{flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.ed-review-layout{display:grid;grid-template-columns:265px minmax(0,1fr);width:100%;min-height:0}.ed-report-controls{padding:22px;border-right:1px solid var(--line);overflow:auto}.ed-report-controls .ed-check{margin-top:18px}.ed-report-controls h3{margin:26px 0 12px;font-size:var(--text-xs)}.ed-report-controls ul{margin:0;padding-left:16px;font-size:var(--text-2xs);color:#876224;line-height:1.7}.ed-report-controls li{margin-bottom:10px}.ed-pdf-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#e5ebf1}.ed-pdf-nav span{font-size:var(--text-2xs);color:var(--dim)}#edPdfCanvas{flex:1;min-height:0;padding:20px;overflow:auto;text-align:center;font-size:var(--text-ui);color:var(--dim)}#edPdfCanvas canvas{display:block;max-width:100%;height:auto;margin:0 auto;box-shadow:0 2px 15px #1a34481c;background:white}.ev-btn:disabled{cursor:default;opacity:.45}.ed-check.wide{grid-column:1/-1}
@media(max-width:1100px){.ed-report-controls{padding:17px}}
@media(max-width:720px){.ed-toolbar{padding:17px;gap:17px}.ed-toolbar .ev-actions{margin-left:0;width:100%}.ed-toolbar-copy{min-width:140px}.ed-dialog{width:96vw;max-height:96dvh}.ed-dialog .ev-dialog-body{padding:18px}.ed-dialog .ev-dialog-foot{flex-wrap:wrap;padding:14px 18px;gap:10px}.ed-dialog .ev-dialog-foot .ed-help{max-width:100%;width:100%}.ed-dialog .ev-dialog-foot>.ev-actions{margin-left:auto}.ed-evidence{gap:10px}.ed-evidence>div{padding:8px}.ed-evidence-head{display:block}.ed-evidence-head span{display:block;margin-top:4px}.ed-evidence img{height:125px}.ed-evidence .ev-btn{padding:8px 10px;font-size:var(--text-2xs)}.ed-snag-filters{flex-wrap:wrap;padding:15px;gap:9px}.ed-snag-filters input{flex-basis:100%;width:100%}.ed-snag-filters select{flex:1;width:120px}.ed-report-dialog{height:96dvh}.ed-report-dialog>.ev-dialog-body{padding:0}.ed-report-controls .ed-check{margin-top:10px}.ed-report-controls h3{margin:15px 0 9px}.ed-report-controls>p:last-child{display:none}#edPdfCanvas{padding:10px}.ed-report-dialog .ev-dialog-foot .ed-help{font-size:10px}}
/* PDF preview canvas: zoom by width; the absolute drawing-surface rule is scoped to #cvwrap. */
#edPdfCanvas canvas{width:var(--ed-pdf-zoom,var(--pdf-zoom,100%))!important;max-width:none!important;height:auto!important;transform:none!important;touch-action:auto}

.ed-pdf-nav{gap:10px}.ed-pdf-nav .ev-btn{padding:8px 10px;font-size:var(--text-2xs)}.ed-pdf-nav select{width:82px;min-width:0;font:inherit;font-size:var(--text-2xs);padding:8px 5px;border:1px solid var(--field-border);background:white;border-radius:6px}.ed-pdf-nav span{white-space:nowrap}

/* Keep the details wizard readable without Safari zooming when an input gains focus. */
#evDetails .ev-field input,#evDetails .ev-field textarea,#evDetails .ev-field select{font-size:var(--text-base)}

/* Backup status: a quiet dot on the top bar button and a reminder on the project overview. */
#evBackupTop{position:relative}
#evBackupTop.ev-backup-due::after{content:"";position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;background:#e0a63a;box-shadow:0 0 0 2px #fff}
.ev-backup-nudge{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px 16px;align-items:center;margin:0 0 22px;padding:16px 18px;border:1px solid #f0d49b;border-left:4px solid #e0a63a;border-radius:12px;background:#fff8e8}
.ev-backup-nudge-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#ffe7b3;color:#8f5d0f}
.ev-backup-nudge-icon svg{width:20px;height:20px}
.ev-backup-nudge h2{margin:0;font-size:15px;font-weight:700;color:var(--ink)}
.ev-backup-nudge p{margin:4px 0 0;font-size:var(--text-ui);line-height:1.5;color:#5c4a24}
.ev-backup-nudge .ev-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ev-pill.quiet.ev-pill-due{background:var(--ev-warn-bg);color:var(--ev-warn);box-shadow:none}
.ev-backup-card.due{border-color:#f0d49b}
.ev-backup-card .ev-backup-keep{font-size:var(--text-xs);margin-top:-8px}
@media(max-width:700px){.ev-backup-nudge{grid-template-columns:auto minmax(0,1fr)}.ev-backup-nudge .ev-actions{grid-column:1/-1}.ev-backup-nudge .ev-actions .ev-btn{flex:1;justify-content:center}}
/* Review dialogs: editable document details and, on phones, a footer count of the checks before downloading. */
.ev-document-fields .ev-field{margin-bottom:12px}.ev-document-fields .ev-field input,.ev-document-fields .ev-field select{width:100%}.ev-document-fields .ev-doc-profile{display:flex;align-items:flex-start;gap:8px}.ev-document-fields .ev-doc-profile small{display:block;color:var(--dim);font-size:var(--text-2xs);font-weight:400}.ev-document-options>div:not(:first-child)>h3:first-child{padding-top:20px;margin-top:20px;border-top:1px solid #e1e8ee}.ev-document-rev{font-size:var(--text-xs);color:#586e80;margin:4px 0 0}
.ed-gaps-chip{display:none}
@media(max-width:700px){#edMessage:has(.ed-gaps-chip) .ed-message-text{display:none}.ed-gaps-chip{display:inline-flex;align-items:center;min-height:36px;padding:6px 11px;border-radius:999px;border:1px solid #f0c36a;background:#fff4dc;color:#7a4e00;font:600 12px/1.3 var(--font,inherit);text-align:left;cursor:pointer}}
/* Phones: a table wider than its card shows a soft shadow at the edge that has more columns, plus a one-line cue above it. */
.ev-table-swipe{display:none}
@media(max-width:700px){.ev-table-wrap{background:linear-gradient(to right,#fff 30%,#fff0) left center/40px 100% no-repeat local,linear-gradient(to left,#fff 30%,#fff0) right center/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,#12304438,#0000) left center/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#12304438,#0000) right center/14px 100% no-repeat scroll}.ev-table-swipe{display:block;margin:0 0 8px;font-size:var(--text-xs);color:var(--dim)}}
/* The example project: a quiet blue tag wherever it appears, a practice note on its overview and a caution in the review dialogs. */
.ev-example-pill{display:inline-block;background:#eff5ff;color:#215da9;border:1px solid #c9dbf7;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:none;padding:3px 7px;border-radius:5px;vertical-align:middle;line-height:1.3}
.ev-eyebrow .ev-example-pill{margin-left:8px}.ev-top-title b .ev-example-pill{margin-right:7px;vertical-align:2px}.ev-resume-label+.ev-example-pill{margin-left:8px}
.ev-top .ev-example-pill{display:inline-block}
.ev-example-note{display:inline-block;margin-top:7px;padding:4px 9px;border-radius:6px;background:#fff4dc;color:#6b4a07;font-size:var(--text-xs);line-height:1.45}
.ev-practice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px 16px;align-items:center;margin:0 0 22px;padding:16px 18px;border:1px solid #c9dbf7;border-left:4px solid var(--accent);border-radius:12px;background:#f3f7ff}
.ev-practice-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#dfe9fb;color:#215da9}.ev-practice-icon svg{width:20px;height:20px}
.ev-practice h2{margin:0;font-size:15px;font-weight:700;color:var(--ink)}.ev-practice p{margin:4px 0 0;font-size:var(--text-ui);line-height:1.5;color:#3d5266}
.ev-practice .ev-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
@media(max-width:700px){.ev-practice{grid-template-columns:auto minmax(0,1fr)}.ev-practice .ev-actions{grid-column:1/-1}.ev-practice .ev-actions .ev-btn{flex:1;justify-content:center}}
/* The project type opens Project details at the Scope step from the overview eyebrow, the Site and contacts card and the top bar. */
.ev-eyebrow-btn,.ev-link-btn,.ev-pill-btn{font:inherit;cursor:pointer}
.ev-eyebrow-btn{background:none;border:0;padding:4px 0;margin:-4px 0;color:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:underline dotted 1px;text-underline-offset:3px}
.ev-eyebrow-btn:hover{text-decoration-style:solid}
.ev-link-btn{background:none;border:0;padding:4px 0;color:var(--accentText);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ev-pill-btn{border:0}.ev-pill-btn:not(:disabled):hover{background:#e1e9f2;color:var(--ink)}.ev-pill-btn:disabled{cursor:default}
/* Start a project: one step, then straight to adding a plan. Neither project type is chosen until tapped. */
.ev-first-run{width:560px}
.ev-first-type{grid-column:1/-1;border:0;margin:0;padding:0;min-width:0;display:grid;gap:10px}
.ev-first-type legend{font-size:var(--text-xs);font-weight:600;color:var(--ink);padding:0;margin-bottom:9px}
.ev-first-type small{font-size:var(--text-ui);color:var(--dim);line-height:1.5}
.ev-first-type .ev-mode-options button{min-height:88px}
.ev-first-more{grid-column:1/-1;justify-self:start;font-size:var(--text-ui)}
.ev-first-run .ev-btn.primary:disabled{opacity:.45;cursor:not-allowed}
.ev-optional{font-weight:400;color:var(--dim);font-size:var(--text-2xs);margin-left:4px}
/* Markup's empty state offers the tour once, below the start cards. */
#root .empty .ev-empty-tour{margin-top:12px;background:none;border:0;color:var(--accentText);font:inherit;font-size:var(--text-ui);font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:8px 4px}
#root .empty .ev-empty-tour[hidden]{display:none}
/* Chrome icons that sit side by side (sidebar, top bar, Markup tool strip and plan strip, help drawer, Home buttons) share one stroke weight. Pictograms on the plan and in the equipment picker keep their own. */
.ev-sidebar svg,.ev-top svg,#evWorkbench .ev-toolstrip svg,#evPlanStrip .ev-btn svg,.ev-help-icon svg,.eh-btn svg{stroke-width:1.7}
/* Works with no signal (offline.js): a quiet pill in the top bar while the device has no connection, and the update notice in the toast style with a Reload action. */
.ev-offline{display:inline-flex;align-items:center;gap:6px;flex:none;white-space:nowrap;font-size:var(--text-2xs);font-weight:650;line-height:1;color:var(--dim);background:var(--panel);border:1px solid var(--line2);border-radius:999px;padding:5px 10px 5px 8px}
.ev-offline[hidden]{display:none}
.ev-offline-dot{width:7px;height:7px;border-radius:50%;background:var(--ev-warn);flex:none}
.ev-offline-short{display:none}
@media(max-width:1100px){.ev-offline-long{display:none}.ev-offline-short{display:inline}}
@media(max-width:520px){.ev-offline{gap:5px;padding:4px 8px 4px 7px}}
/* While the pill is showing, a long breadcrumb ends in an ellipsis instead of wrapping out of the top bar. */
.ev-top:has(.ev-offline:not([hidden])) .ev-top-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast.ev-update-toast{pointer-events:auto;display:flex;align-items:center;gap:12px;text-align:left;max-width:min(92vw,560px)}
.ev-update-toast button{font:inherit;font-size:var(--text-ui);cursor:pointer;border-radius:var(--btn-r);padding:6px 12px;flex:none}
.ev-update-reload{background:var(--accentInk);color:var(--accentText);border:0}
.ev-update-later{background:none;border:1px solid currentColor;color:var(--accentInk)}
/* Tender pack review: the sections the project has are ticks; the ones it does not have yet are listed below them. */
.ev-tender-options .ev-tender-lead{margin-top:0}
.ev-tender-options .ev-tender-file{margin:10px 0 18px;font-size:var(--text-2xs);color:var(--dim);overflow-wrap:anywhere}
.ev-tender-file b{display:block;font-weight:650;color:var(--ink)}
.ev-tender-missing{margin:16px 0 4px;font-size:var(--text-2xs);line-height:var(--leading-normal);color:var(--dim)}
.ev-tender-missing b{display:block;font-size:var(--text-xs);font-weight:650;color:var(--ink);margin-bottom:6px}
.ev-tender-missing ul{list-style:none;padding:0;margin:0;font-size:var(--text-2xs)}
.ev-tender-missing li{padding:7px 0;border-bottom:1px solid #e6edf2}
.ev-tender-missing li+li{margin-top:0}
.ev-tender-missing li span{display:block;font-weight:650;color:#4b667b}
/* Drawings and packs holds four cards: two by two from the tablet width up, four across on wide screens, one column on phones. */
.ev-outs.ev-outs-four{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1600px){.ev-outs.ev-outs-four{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.ev-outs.ev-outs-four{grid-template-columns:minmax(0,1fr)}}
/* Markup tool strip: Show client keeps its label on an iPad, where Focus shows only its icon; phones reach it from Tools. */
@media(max-width:1100px){#evWorkbench #evClient.ev-focus-btn{width:auto;padding:8px 10px}#evWorkbench #evClient.ev-focus-btn span{display:inline}}
/* Save picture: on computers it sits in the plan strip beside Reach, where there is room; on iPads and phones the plan strip is full, so it is an icon in the tool strip instead (and stays on phones, where Focus and Show client step aside). */
#evWorkbench .ev-focus-btn.ev-picture-btn{display:none}#evPlanStrip .ev-strip-picture{gap:6px}#evPlanStrip .ev-strip-picture svg{width:16px;height:16px;flex:none}#evApp.ev-inspector-open #evPlanStrip .ev-strip-picture{width:36px;padding:6px;justify-content:center;flex:none}#evApp.ev-inspector-open #evPlanStrip .ev-strip-picture span{display:none}
@media(max-width:1100px){#evPlanStrip .ev-strip-picture{display:none}#evWorkbench .ev-focus-btn.ev-picture-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;padding:8px;font-size:0;gap:0}#evWorkbench .ev-picture-btn span{display:none}#evWorkbench .ev-picture-btn svg{width:17px;height:17px}}
/* Phones: the drawing tools and undo fill the first row of the tool strip (at 320px there is no room for another icon), so Save picture takes the second row between Add markup and Tools, and steps aside with Add markup while an item is selected so the strip stays one row. */
@media(max-width:700px){#evWorkbench .ev-focus-btn.ev-picture-btn{order:4}#evWorkbench .ev-toolstrip .ev-tech{order:5}#evWorkbench .ev-toolstrip #evToolCategory{flex-basis:calc(100% - 102px)}#evApp.ev-item-selected #evWorkbench .ev-focus-btn.ev-picture-btn{display:none}}
/* Overview plan card: Show client sits beside Continue markup; on a phone Continue markup goes first, both full width. */
.ev-plan-card-foot>.ev-actions{display:flex;gap:8px;flex:none}
@media(max-width:700px){.ev-plan-card-foot>.ev-actions{width:100%;flex-direction:column-reverse}.ev-plan-card-foot>.ev-actions .ev-btn{width:100%;justify-content:center}}
/* Show client: the plan takes the whole screen. The project name sits top left and a navy bar at the foot holds the plans,
   the design options, 3D and Done. Everything else is hidden and inert (workspace.js). */
.ev-client-view,.ev-client-view body{overflow:hidden}
.ev-client-view #cvwrap{position:fixed;inset:0;z-index:90;background:#eef2f5}
.ev-client-view #cvwrap .zoombar,.ev-client-view #legendPill,.ev-client-view #empty,.ev-client-view #evPlanTag{display:none}
.ev-client-view #s3dBackdrop .c3d{width:100%;height:100%}
.ev-client-view #cv{touch-action:none}
.ev-client-title[hidden],.ev-client-bar[hidden],.ev-client-bar [hidden]{display:none}
.ev-client-slot{display:contents}
.ev-client-title{position:fixed;z-index:91;width:max-content;top:max(16px,env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));max-width:min(420px,calc(100vw - 32px));padding:10px 14px;border-radius:var(--ev-radius);background:#fffffff2;box-shadow:var(--ev-shadow);font-family:var(--font);color:var(--ink);pointer-events:none}
.ev-client-title b{display:block;font-size:var(--text-base);font-weight:700;line-height:var(--leading-snug);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ev-client-title span{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ev-client-bar{position:fixed;z-index:91;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);padding:8px;border-radius:var(--ev-radius-lg);background:var(--ev-navy);box-shadow:0 12px 36px #0d1c2859;font-family:var(--font);--focus:var(--ev-sky)}
.ev-client-row{display:flex;align-items:center;gap:8px}
.ev-client-bar button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--btn-h);padding:0 14px;border:1px solid #ffffff33;border-radius:var(--btn-r);background:#ffffff14;color:#fff;font:600 var(--text-ui) var(--font);white-space:nowrap;cursor:pointer}
.ev-client-bar button:hover{background:#ffffff24;border-color:#ffffff66}
.ev-client-bar button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ev-client-bar .ev-client-3d{background:var(--ev-sky);border-color:var(--ev-sky);color:var(--ev-sky-ink)}
.ev-client-bar .ev-client-3d:hover{background:var(--ev-sky-hover);border-color:var(--ev-sky-hover)}
.ev-client-seg{display:flex;gap:2px;padding:2px;border-radius:var(--btn-r);background:#ffffff14}
.ev-client-seg button{gap:0;min-height:calc(var(--btn-h) - 4px);border-color:transparent;background:transparent;color:var(--ev-on-navy)}
.ev-client-seg button[aria-pressed=true]{background:#fff;color:var(--ev-navy)}
.ev-client-plans{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;max-width:100%}
.ev-client-plans button{flex:none;flex-direction:column;gap:4px;width:112px;min-height:0;padding:4px;color:var(--ev-on-navy);font-size:var(--text-2xs);font-weight:600}
.ev-client-plans button[aria-pressed=true]{border-color:var(--ev-sky);background:#6aa6ff26;color:#fff}
.ev-client-plans img{display:block;width:100%;height:58px;object-fit:cover;border-radius:5px;background:#ffffff1f}
.ev-client-plans span{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;text-align:left}
@media(max-width:700px){
 .ev-client-title{right:max(16px,env(safe-area-inset-right,0px));max-width:none;padding:8px 12px}
 .ev-client-title b{font-size:var(--text-sm)}
 .ev-client-bar{left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:max(12px,env(safe-area-inset-bottom,0px));transform:none;max-width:none}
 .ev-client-row{flex-wrap:wrap}
 .ev-client-seg{flex:1 1 100%}
 .ev-client-seg button{flex:1}
 .ev-client-row>button{flex:1;padding:0 10px}
 .ev-client-wide{display:none}
 .ev-client-plans button{width:88px}
 .ev-client-plans img{height:46px}
}

/* Programme (22 October 2026): the activities and their bars in one list on a shared week scale, then the days off and
   notes. Blue planned, amber in progress, green complete; a red ring marks an activity that is behind, the red line is today. */
.ed-toolbar-copy b{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:5px;font-size:var(--text-base);font-weight:650;letter-spacing:-.1px}
.ed-toolbar-copy small{font-size:var(--text-xs)}
.ed-notice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 18px;margin-bottom:20px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--ev-radius);background:var(--panel2)}
.ed-notice>div{display:grid;gap:3px;flex:1 1 300px;min-width:0}
.ed-notice b{font-size:var(--text-sm);color:var(--ink)}
.ed-notice span{font-size:var(--text-ui);line-height:1.5;color:var(--dim)}
.ed-notice.warn{border-color:#ecd5a4;background:var(--ev-warn-bg)}
.ed-notice.warn b{color:var(--ev-warn)}
.ed-notice.info{border-color:#cbdaf8;background:var(--ev-info-bg)}
.ed-notice.info b{color:var(--ev-info)}
.ed-plan{--ed-off:#edf1f5}
.ed-legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:12px 21px;border-bottom:1px solid var(--line);font-size:var(--text-2xs);color:var(--dim)}
.ed-legend span{display:inline-flex;align-items:center;gap:6px}
.ed-legend span:before{content:'';width:16px;height:8px;border-radius:3px;background:var(--accent)}
.ed-legend .inprogress:before{background:var(--ev-warn)}
.ed-legend .complete:before{background:var(--ev-ok)}
.ed-legend .late:before{background:transparent;box-shadow:inset 0 0 0 2px var(--ev-bad)}
.ed-legend .today:before{width:2px;height:12px;border-radius:1px;background:var(--ev-bad)}
.ed-legend .off:before{background:var(--ed-off);box-shadow:inset 0 0 0 1px var(--line2)}
.ed-row{display:grid;grid-template-columns:26px minmax(150px,1fr) 186px 100px minmax(220px,1.9fr) auto;grid-template-areas:"num name dates state track edit";align-items:center;column-gap:14px;padding:12px 21px;border-bottom:1px solid #edf1f5}
.ed-row:last-child{border-bottom:0}
.ed-row>.ed-number{grid-area:num;font-size:var(--text-xs);color:var(--faint);font-variant-numeric:tabular-nums}
.ed-row-name,.ed-head-name{grid-area:name;min-width:0}
.ed-row-dates,.ed-head-dates{grid-area:dates;min-width:0}
.ed-row-state{grid-area:state;display:flex;flex-wrap:wrap;gap:5px}
.ed-track,.ed-scale{grid-area:track;position:relative;min-width:0}
.ed-edit{grid-area:edit;justify-self:end}
.ed-row-name b,.ed-row-dates b{display:block;font-size:var(--text-sm);font-weight:600;line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.ed-row-name small,.ed-row-dates small{display:block;margin-top:3px;font-size:var(--text-xs);line-height:1.45;color:var(--dim)}
.ed-row-dates .ed-late-text{color:var(--ev-bad);font-weight:600}
.ed-row.excluded{background:#f8fafb}
.ed-row.excluded b{color:#6f8090;font-weight:500}
.ed-head{padding-top:9px;padding-bottom:7px;background:var(--panel);font-size:var(--text-2xs);font-weight:600;color:var(--dim)}
/* The dates row stays at the top of the page's scroll area (#evScreen) while a long programme scrolls under it. */
/* overflow:clip keeps the rounded corners without making the card a scroll container, which would stop the row sticking. */
.ev-card.ed-plan{overflow:clip}
.ed-gantt>.ed-head{position:sticky;top:var(--ed-stick,0);z-index:4;border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--panel),0 4px 8px -6px #17304433}
.ed-scale{height:18px}
.ed-scale span{position:absolute;top:1px;padding-left:5px;border-left:1px solid var(--line2);line-height:16px;white-space:nowrap}
.ed-scale .ed-today{top:0;bottom:-8px}
.ed-track{height:30px;border-radius:6px;background-color:#fbfcfd;background-image:repeating-linear-gradient(90deg,#dfe6ed 0 1px,transparent 1px var(--ed-week,100%)),var(--ed-days,none);box-shadow:inset 0 0 0 1px #e9eef3}
.ed-bar{position:absolute;top:8px;height:14px;min-width:6px;border-radius:4px;background:var(--accent)}
.ed-bar.inprogress{background:var(--ev-warn)}
.ed-bar.complete{background:var(--ev-ok)}
.ed-bar.late{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ev-bad)}
.ed-today{position:absolute;top:-13px;bottom:-13px;width:2px;margin-left:-1px;background:var(--ev-bad);opacity:.75;pointer-events:none}
.ed-gantt.no-dates .ed-row{grid-template-columns:26px minmax(170px,1.3fr) minmax(170px,1fr) 100px auto;grid-template-areas:"num name dates state edit"}
.ed-hint{margin:0;padding:12px 21px;border-bottom:1px solid #edf1f5;font-size:var(--text-ui);color:var(--dim)}
.ed-undo{position:sticky;bottom:16px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:560px;margin:18px auto 0;padding:9px 10px 9px 16px;border-radius:var(--ev-radius);background:var(--ev-navy);color:#fff;font-size:var(--text-ui);box-shadow:0 8px 24px #0f243640}
.ed-undo .ev-btn{border-color:#ffffff3d;background:transparent;color:var(--ev-sky);font-weight:650}
.ed-calendar{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start}
.ed-daysoff h3{margin:0 0 4px;font-size:var(--text-sm);color:var(--ink)}
.ed-daysoff>.ed-help{margin:0}
.ed-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}
.ed-chips .ed-help{margin:0}
.ed-chip{display:inline-flex;align-items:center;gap:7px;padding:2px 2px 2px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:var(--text-xs);color:var(--ink)}
.ed-chip b{font-weight:600}
.ed-chip small{font-size:var(--text-xs);color:var(--dim)}
.ed-chip button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--dim);font:inherit;font-size:var(--text-base);line-height:1;cursor:pointer}
.ed-chip button:hover{background:#e2e9f0;color:var(--ink)}
.ed-dayoff-add{display:flex;flex-wrap:wrap;gap:14px 28px}
.ed-add-group{display:flex;align-items:flex-end;gap:10px;min-width:0}
.ed-add-group .ev-field{flex:0 1 200px;min-width:0}
.ed-add-group .ev-btn{flex:none}
.ed-error{display:block;margin-top:8px;font-size:var(--text-xs);color:var(--ev-bad)}
.ed-error:empty{display:none}
.ed-when{grid-column:1/-1;margin:-6px 0 0;padding:10px 12px;border-radius:var(--ev-radius);background:var(--panel);font-size:var(--text-ui);line-height:1.5;color:var(--ink)}
/* The dialog's footer buttons are styled by a stronger rule in design-preview.css; this one has to outrank it. */
.ev-backdrop .ed-dialog .ev-dialog-foot .ev-btn.ed-delete:not(.primary){color:var(--ev-bad)}
.ed-pick-head{margin:0 0 8px;font-size:var(--text-sm);color:var(--ink)}
.ed-picks{display:grid;gap:8px;margin-bottom:20px}
.ed-picks:last-child{margin-bottom:0}
.ed-pick{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--ev-radius);background:var(--panel2);cursor:pointer}
.ed-pick input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
.ed-pick b{display:block;font-size:var(--text-sm);font-weight:600;color:var(--ink)}
.ed-pick small{display:block;margin-top:2px;font-size:var(--text-xs);line-height:1.45;color:var(--dim)}
/* Up to laptop width the bar takes its own line under the activity, across the row, so the weeks stay readable. */
@media(max-width:1200px){
 .ed-row,.ed-gantt.no-dates .ed-row{grid-template-columns:22px minmax(0,1fr) 186px 100px auto;grid-template-areas:"num name dates state edit" "num track track track track";row-gap:10px;column-gap:12px;padding:12px 16px}
 .ed-row>.ed-number{align-self:start;margin-top:2px}
 .ed-head{grid-template-areas:"num track track track track";padding-top:8px;padding-bottom:6px}
 .ed-head-name,.ed-head-dates{display:none}
 .ed-track{height:26px}
 .ed-bar{top:6px;height:14px}
 .ed-today{top:-5px;bottom:-5px}
 .ed-legend,.ed-hint{padding-left:16px;padding-right:16px}
}
@media(max-width:1100px){
 .ed-calendar{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
 .ed-row,.ed-gantt.no-dates .ed-row{grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"num name edit" "num dates state" "num track track";row-gap:8px;padding:14px}
 .ed-row-state{justify-content:flex-end}
 .ed-head{grid-template-areas:"num track track"}
 .ed-scale span:nth-of-type(even){display:none}
 .ed-track{height:24px}
 .ed-bar{top:6px;height:12px}
 .ed-dayoff-add,.ed-add-group{flex:1 1 100%}
 .ed-add-group{flex-wrap:wrap}
 .ed-add-group .ev-field{flex:1 1 180px}
 .ed-undo{bottom:12px}
}
/* Engineer view off (device setting evsp_engineer_v1): the Tools menu does not offer Cable calculations */
.ev-calcs-off .ev-tech-menu button[data-ev-action="calcs"]{display:none}
/* The engineer view off note on the home circuit card sits clear of the Earthing row above it */
.ev-home-note-gap{margin-top:12px}
/* Engineer view off: the Tools menu does not offer Charging day either; it is part of the power modelling in Design lab */
.ev-calcs-off .ev-tech-menu button[data-ev-action="sim"]{display:none}
