:root{--navy:#152d40;--navy-deep:#102332;--orange:#e87826;--orange-pale:#fff0e3;--ink:#203544;--muted:#6f7c86;--line:#dce2e5;--bg:#f3f5f5;--white:#fff;--green:#287757;--red:#a43732;--shadow:0 8px 28px #1833480c;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e8782690;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:34px;letter-spacing:-1.2px;margin-bottom:12px}h2{font-size:24px;letter-spacing:-.5px}h3{font-size:17px}p{line-height:1.6}small{font-size:12px}label{display:block;font-size:13px;font-weight:600}input:not([type=checkbox]):not([type=color]),textarea,select{width:100%;border:1px solid #ccd5da;border-radius:7px;background:#fff;padding:10px 12px;color:var(--ink);margin-top:7px;min-height:41px}textarea{resize:vertical;line-height:1.5;min-height:90px}input[type=checkbox]{accent-color:var(--orange);width:18px;height:18px;flex-shrink:0}input[type=color]{width:45px;height:36px;border:1px solid var(--line);background:white;cursor:pointer}input[type=date]{font-size:14px}form label+label{margin-top:17px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);border-radius:7px;background:white;padding:10px 16px;font-size:13px;font-weight:600;line-height:1.4;min-height:40px;white-space:nowrap}.button:hover{border-color:#aebcc4;background:#f9fafb}.button.primary{background:var(--orange);border-color:var(--orange);color:white}.button.primary:hover{background:#d6691d}.button.dark{background:var(--navy);color:white;border-color:var(--navy)}.button.ghost{background:transparent}.button.small{padding:6px 10px;min-height:32px;font-size:12px}.button.danger{color:var(--red)}.button.active{color:var(--orange);background:var(--orange-pale);border-color:#efbf98}.wide{width:100%}.muted{color:var(--muted)}.eyebrow{display:block;color:#9c5a2d;font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:14px}.eyebrow.light{color:#f3a264}.text-link{color:var(--navy);font-size:13px;font-weight:600}.brand{display:flex;align-items:center;gap:13px;color:white;flex-shrink:0}.brand img{width:45px;height:45px;object-fit:contain}.brand>span{font-size:14px;font-weight:800;letter-spacing:1.2px;line-height:1.6}.brand small{display:block;letter-spacing:3px;font-size:9px;font-weight:500;color:#bdcad2}.topbar{height:83px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:25px;border-bottom:3px solid var(--orange)}.top-context{flex:1;display:flex;align-items:center;gap:24px;color:#bac8d1;font-size:12px}.top-divider{height:30px;width:1px;background:#ffffff20}.top-actions{display:flex;align-items:center;gap:22px;font-size:12px}.top-actions>a{color:#c9d4db}.logout{background:transparent;border:1px solid #ffffff35;color:white;border-radius:5px;padding:7px 10px;font-size:11px}.layout{display:flex;min-height:calc(100vh - 83px)}.sidebar{width:236px;flex-shrink:0;padding:26px 18px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:24px}.side-label{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#8a959e;padding:0 12px;margin-bottom:12px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-radius:6px;background:transparent;padding:12px;font-size:13px;font-weight:600;color:#687983}.nav-item.active{color:#b85c1c;background:var(--orange-pale)}.nav-item:hover{background:#f3f5f5}.nav-icon{font-size:17px;width:20px}.side-board{padding:14px;background:#f5f7f7;border:1px solid var(--line);border-radius:7px}.side-board small{color:var(--muted);display:block;margin-bottom:6px}.side-board strong{font-size:13px}.side-footer{margin-top:auto;padding:16px 12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.7}.side-footer strong{display:block;color:var(--ink)}.main{padding:32px 36px;width:100%;min-width:0;max-width:2000px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1{margin-bottom:8px}.page-heading p{font-size:13px;margin-bottom:0}.heading-actions,.row-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.date-chip{border:1px solid var(--line);border-radius:7px;background:white;padding:10px 14px;font-size:12px;color:var(--muted)}.board-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}.board-choice{border:1px solid var(--line);border-radius:10px;background:white;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;text-align:left;padding:0;color:var(--ink)}.board-choice:hover{border-color:var(--orange);transform:translateY(-2px)}.board-choice-top{height:120px;background:var(--navy);color:white;padding:25px;display:flex;align-items:center;justify-content:space-between;background-image:repeating-linear-gradient(-45deg,transparent,transparent 22px,#ffffff04 22px,#ffffff04 23px)}.board-symbol{width:60px;height:60px;border:1px solid #ffffff40;border-radius:8px;display:grid;place-items:center;font-size:30px;color:#ee9c5f}.board-choice-body{padding:23px}.board-choice-body h3{font-size:20px;margin-bottom:10px}.board-choice-body p{font-size:12px;color:var(--muted);margin-bottom:24px}.board-choice-bottom{font-size:12px;font-weight:700;color:#b85c1c;display:flex;justify-content:space-between}.empty{padding:50px 25px;background:white;border:1px dashed #c7d0d5;border-radius:10px;text-align:center;grid-column:1/-1}.empty-symbol{display:block;font-size:32px;margin-bottom:16px;color:var(--orange)}.empty p{font-size:13px;color:var(--muted);max-width:480px;margin:0 auto 22px}.empty-page{max-width:650px;margin:12vh auto;text-align:center;padding:30px}.notice{padding:13px 16px;background:#eaf3ef;color:#286648;border:1px solid #c8ddd1;border-radius:6px;font-size:13px;margin:15px 0;line-height:1.6}.notice.danger{background:#fff0ed;border-color:#edc7bc;color:#9d4030}.notice.info{background:#edf3f8;border-color:#d0dfea;color:#355b72}.notice.warning{background:#fff6e8;border-color:#f1d7ac;color:#8c5b20}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat{background:white;border:1px solid var(--line);border-radius:8px;padding:19px 22px;display:flex;align-items:center;justify-content:space-between}.stat small{display:block;color:var(--muted);margin-bottom:8px}.stat strong{font-size:28px;font-weight:650}.stat-icon{display:grid;place-items:center;width:42px;height:42px;background:#f2f5f7;border-radius:8px;color:#60788a;font-size:22px}.stat:first-child .stat-icon{background:var(--orange-pale);color:var(--orange)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 16px;gap:15px}.section-heading h2{font-size:18px;margin:0}.section-heading p{font-size:12px;margin:5px 0 0;color:var(--muted)}.search{max-width:270px;margin-top:0!important}.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:4px;font-size:10px;font-weight:700;background:#eef2f4;color:#657985;line-height:1.5}.pill.green{color:#287757;background:#e7f2eb}.pill.orange{color:#a45924;background:#fff0e3}.pill.red{color:#a43732;background:#fbecea}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:18px}.project-card{border:1px solid var(--line);background:white;border-radius:9px;overflow:hidden;box-shadow:var(--shadow)}.project-card.on-board{border-top:3px solid var(--orange)}.project-card.off-board{border-top:3px solid #cbd4da}.project-card-main{padding:20px;cursor:pointer}.project-card-main:hover{background:#fcfcfa}.project-card h3{margin:14px 0 7px;font-size:19px;line-height:1.3}.project-meta{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:12px;margin-top:18px}.project-card-actions{border-top:1px solid #e9edef;display:flex;align-items:center;gap:6px;padding:12px 15px;flex-wrap:wrap}.project-card-actions .toggle{margin-left:auto}.project-line{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-description{font-size:12px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}.board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;flex-wrap:wrap}.board-toolbar input[type=date]{width:155px;margin:0;min-height:37px}.board-toolbar label{display:flex;align-items:center;gap:10px}.daily-banner{display:grid;grid-template-columns:1.1fr 1fr;background:var(--navy);border-radius:9px;color:white;overflow:hidden;margin-bottom:15px}.daily-banner>div{padding:20px 23px}.daily-banner h3{font-size:13px;color:#b9ccd7;margin:0 0 10px;font-weight:400}.daily-banner p{font-size:17px;margin:0;white-space:pre-wrap}.daily-banner .assembly{background:#264b42}.daily-banner .assembly h3{color:#bad6cb}.safety-strip{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:24px}.safety-cell{padding:18px;border-left:1px solid var(--line)}.safety-cell:first-child{border-left:0}.safety-cell h3{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#a36639;margin:0 0 9px}.safety-cell p{font-size:12px;white-space:pre-wrap;margin:0;color:#566a76}.board-grid{display:grid;grid-template-columns:repeat(var(--columns,2),minmax(0,1fr));gap:20px}.work-card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden;break-inside:avoid}.work-card.done{border-color:#88b29b}.work-card-header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.work-card-number{font-size:11px;letter-spacing:1px;color:#bd713b;background:var(--orange-pale);padding:6px 7px;border-radius:4px}.work-card-header h3{font-size:15px;margin:0;flex:1}.work-card-body{padding:14px}.work-card .canvas-display{background-color:#fbfcfc;border:1px solid #e9edef;border-radius:5px}.work-card-footer{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:12px;margin:16px 4px 4px}.work-card-footer small{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);margin-bottom:5px}.work-card-footer div{white-space:pre-wrap;overflow-wrap:anywhere}.work-card-actions{padding:11px 16px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;border-top:1px solid #edf0f1}.work-card-actions .spacer{flex:1}.drag-board{cursor:grab;touch-action:none}.drop-target{outline:3px solid var(--orange)}.board-notes{margin-top:22px;padding:20px;background:#fffbe9;border:1px solid #e5dec2;border-radius:8px}.board-notes h3{font-size:13px}.board-notes p{font-size:13px;white-space:pre-wrap;margin:0}.canvas-display,.editor-stage{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;container-type:inline-size}.canvas-display .canvas-node{pointer-events:none}.canvas-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#a0aab1;font-size:12px;background-image:radial-gradient(#dce3e6 .7px,transparent .7px);background-size:15px 15px}.canvas-node{position:absolute;overflow:hidden;line-height:1.25;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;user-select:none;touch-action:none}.canvas-node img{width:100%;height:100%;object-fit:contain;pointer-events:none}.canvas-node svg{width:100%;height:100%;pointer-events:none}.canvas-node.text{padding:.5cqw}.canvas-node.selected{outline:2px solid var(--orange);overflow:visible}.canvas-node.selected .node-text{overflow:hidden;height:100%;width:100%}.canvas-node.selected:before{content:'↕';position:absolute;left:-2px;top:-22px;font-size:14px;width:25px;height:20px;line-height:20px;text-align:center;color:white;background:var(--orange);border-radius:3px 3px 0 0}.resize-handle{position:absolute;right:-5px;bottom:-5px;width:13px;height:13px;background:var(--orange);border:2px solid white;cursor:nwse-resize}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.editor-paper{padding:25px;background:#e6ebed;border:1px solid #d4dde1;border-radius:8px;overflow:hidden}.editor-stage{background:white;box-shadow:0 2px 12px #20354415;touch-action:none;background-image:radial-gradient(#d6dfe3 .8px,transparent .8px);background-size:20px 20px}.editor-stage.drawing{cursor:crosshair}.editor-stage.drawing .canvas-node{pointer-events:none}.editor-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:white;padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:15px}.editor-tools .tool-divider{width:1px;height:25px;background:var(--line);margin:0 4px}.properties{background:white;border:1px solid var(--line);border-radius:8px;padding:19px}.properties h3{font-size:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.properties label{font-size:11px;margin-bottom:14px}.properties textarea{min-height:160px}.properties p{font-size:12px}.property-row{display:flex;gap:10px}.property-row>*{flex:1;min-width:0}.property-row .button{padding:8px}.editor-caption{font-size:11px;color:var(--muted);margin:12px 0}.save-state{font-size:11px;color:var(--muted);margin-left:auto}.save-state.dirty{color:#a25b25}.modal-head{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px}.modal-head h2{margin:0 0 6px}.modal-head p{margin:0;font-size:13px;color:var(--muted)}.close{background:#f0f3f5;color:var(--muted);border:0;border-radius:50%;width:32px;height:32px;font-size:20px;flex-shrink:0}.close:hover{background:#e1e7ea}dialog{border:0;border-radius:12px;box-shadow:0 25px 100px #10233245;width:min(600px,94vw);max-height:92vh;padding:28px;color:var(--ink);background:#fff}dialog::backdrop{background:#10233285;backdrop-filter:blur(3px)}dialog.large{width:min(1060px,96vw)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid label{margin:0}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.check-label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:400}.modal-error:empty{display:none}.activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.activity-group{border:1px solid var(--line);border-radius:8px;padding:17px}.activity-group h3{font-size:14px;margin-bottom:16px}.activity-group label{font-size:12px;margin:10px 0;line-height:1.5}.safety-step{display:flex;align-items:center;gap:12px;font-size:17px;margin:26px 0 17px}.safety-step>span{background:var(--navy);border-radius:50%;color:white;width:28px;height:28px;display:grid;place-items:center;font-size:12px}.route-steps{padding:14px 20px;background:#edf5f0;border:1px solid #cde0d4;border-radius:7px;font-size:12px;line-height:1.8}.route-steps.nonstandard{background:#fff1e9;border-color:#edc8ae}.route-steps ol{padding-left:20px;margin:9px 0 0}.risk-package{margin:12px 0;border:1px solid var(--line);border-radius:7px;overflow:hidden}.risk-package summary{padding:14px;background:#f4f6f7;font-size:12px;font-weight:700;cursor:pointer}.risk-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,2fr) 68px 68px;gap:14px;padding:13px;border-top:1px solid var(--line);font-size:11px;line-height:1.6}.risk-row strong{display:block}.risk-row p{margin:0;white-space:pre-wrap}.risk-row small{color:var(--muted);font-size:10px}.risk-label{font-size:9px;display:block;color:var(--muted);margin-bottom:5px}.score{display:inline-block;font-size:10px;border-radius:4px;padding:4px 6px;font-weight:700;background:#edf4ee;color:#307347}.score.medium{color:#8b611f;background:#fff3dc}.score.high{color:#a73832;background:#fbecea}.score.missing{color:#6c7280;background:#eef0f3}.safety-source{font-size:11px;color:var(--muted);line-height:1.6}.print-only{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 22px;border-radius:7px;background:var(--navy);color:white;box-shadow:0 8px 30px #0003;font-size:13px;z-index:1000}#toast.error{background:#9c3f32}.loading{padding:80px;text-align:center;color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:40px;background:#e9eeef}.login-shell{display:grid;grid-template-columns:1.15fr 1fr;width:min(1040px,100%);min-height:650px;border-radius:12px;overflow:hidden;box-shadow:0 30px 100px #152d401c}.login-story{background:var(--navy);color:white;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;background-image:repeating-linear-gradient(-45deg,transparent,transparent 44px,#ffffff03 44px,#ffffff03 45px)}.login-story h1{font-size:43px;line-height:1.17;letter-spacing:-1.4px;margin:25px 0}.login-story p{font-size:14px;color:#b8c8d3;max-width:330px}.login-foot{font-size:10px;letter-spacing:2px;color:#91a8b8}.login-foot span{color:var(--orange);padding:0 8px}.login-form{padding:80px 48px;background:white;display:flex;flex-direction:column;justify-content:center}.login-form h2{font-size:33px;margin-bottom:10px}.login-form form{margin-top:22px}.login-form form button{margin-top:26px;justify-content:space-between}.login-help{font-size:11px;color:var(--muted);margin:28px 0}.login-form>.muted{font-size:14px}.presenting .topbar,.presenting .sidebar,.presenting .page-heading,.presenting .work-card-actions,.presenting .edit-daily{display:none}.presenting .main{padding:22px}.presenting .layout{min-height:100vh}.presenting .board-grid{gap:16px}.presenting .board-toolbar{margin-bottom:15px}.presenting .safety-cell p{font-size:14px}.presentation-title{display:none}.presenting .presentation-title{display:block;font-size:25px;margin:0}.presenting .board-toolbar .normal-only{display:none}.presenting .exit-present{display:inline-flex}.exit-present{display:none}
@media(min-width:1700px){.main{padding:38px 46px}.board-grid{gap:24px}}
@media(max-width:1100px){.sidebar{width:195px;padding:23px 12px}.main{padding:25px}.top-context{display:none}.editor-layout{grid-template-columns:minmax(0,1fr) 220px}.editor-paper{padding:15px}.board-grid{--columns:2!important}.safety-strip{grid-template-columns:repeat(2,1fr)}.safety-cell:nth-child(3){border-left:0;border-top:1px solid var(--line)}.safety-cell:nth-child(4){border-top:1px solid var(--line)}}
@media(max-width:780px){.topbar{padding:0 18px;height:73px}.top-actions{gap:10px}.top-actions>a,#user-name{display:none}.layout{display:block;min-height:calc(100vh - 73px)}.sidebar{width:auto;padding:10px 16px;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:8px;overflow:auto}.side-nav{flex-direction:row}.side-label,.side-footer,.side-board{display:none}.nav-item{white-space:nowrap;padding:9px 10px;font-size:12px}.main{padding:23px 17px}.page-heading{align-items:flex-start;margin-bottom:22px;flex-wrap:wrap}h1{font-size:28px}.date-chip{display:none}.heading-actions{gap:7px}.stats{gap:8px}.stat{padding:13px}.stat strong{font-size:23px}.stat small{font-size:10px}.stat-icon{display:none}.section-heading{align-items:flex-start;flex-wrap:wrap}.board-grid{grid-template-columns:1fr!important}.daily-banner{grid-template-columns:1fr}.daily-banner>div{padding:16px 18px}.daily-banner p{font-size:15px}.safety-cell{padding:14px}.editor-layout{display:flex;flex-direction:column}.editor-paper{width:100%;padding:12px}.properties{width:100%}.properties textarea{min-height:85px}.editor-tools{gap:6px}.editor-tools .button{font-size:11px;padding:8px}.form-grid{grid-template-columns:1fr}.activity-grid{grid-template-columns:1fr}.risk-row{grid-template-columns:1fr 1fr;gap:10px}.risk-row>p{grid-column:1/-1;grid-row:2}.login-page{padding:20px}.login-shell{grid-template-columns:1fr}.login-story{padding:28px;min-height:300px}.login-story .brand{margin-bottom:35px}.login-story h1{font-size:32px;margin:12px 0}.login-story p,.login-foot{display:none}.login-form{padding:35px 28px}.presenting .main{padding:12px}dialog{padding:22px}.board-toolbar{gap:10px}.search{max-width:100%}}
@media print{body{background:white}.topbar,.sidebar,.page-heading,.board-toolbar,.work-card-actions,.heading-actions,.edit-daily,#toast{display:none!important}.main{padding:0}.layout{display:block}.board-grid{grid-template-columns:1fr 1fr!important;gap:10px}.work-card{break-inside:avoid}.safety-strip,.daily-banner{print-color-adjust:exact}.print-only{display:block}.print-only h1{font-size:24px}body:has(dialog[open])>#app,body:has(dialog[open])>.topbar{display:none}dialog[open]{position:static;display:block;width:100%;max-width:100%;max-height:none;overflow:visible;box-shadow:none;padding:0}dialog[open]::backdrop{background:none}.modal-head .close,.form-actions,.no-print{display:none!important}.activity-grid{font-size:11px}.risk-package{break-inside:avoid}textarea,input{border:0!important;min-height:0!important}textarea{resize:none}.safety-step{break-after:avoid}.risk-row{break-inside:avoid}}
/* Project summaries remain usable in presentation mode. */
.presenting .expand-control{display:none}
.drawing-point-handle{position:absolute;transform:translate(-50%,-50%);width:14px;height:14px;padding:0;border:2px solid white;border-radius:50%;background:#2464a6;box-shadow:0 0 0 1px #2464a6;cursor:crosshair;z-index:3;touch-action:none}.drawing-point-handle:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.presenting .work-card{cursor:pointer}.presenting .project-safety-details{cursor:auto}
.board-grid{align-items:start}.work-card-body[hidden]{display:none!important}.work-card-header{flex-wrap:wrap}.work-card-header h3{overflow-wrap:anywhere;min-width:100px}.expand-control{margin-left:auto;cursor:pointer}.complete-control{cursor:pointer;white-space:nowrap}.work-card-summary{padding:12px 18px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}.work-card-summary strong{color:var(--ink);font-size:12px}.project-description{white-space:pre-wrap;font-size:13px;overflow-wrap:anywhere}.project-safety{margin-top:20px;border-top:2px solid var(--orange);padding-top:16px;overflow-wrap:anywhere}.project-safety h3{font-size:16px}.project-safety p{font-size:13px;white-space:pre-wrap;margin:7px 0}.project-risks{list-style:none;margin:12px 0;padding:0}.project-risks li{padding:14px 0;border-bottom:1px solid var(--line);break-inside:avoid}.project-risks small{display:block;color:var(--muted);margin-bottom:5px}.project-risks strong{display:block;font-size:14px}.missing-assessment{color:#8c5b20}.project-safety-fields{display:grid;gap:14px;margin:16px 0 0}.project-safety-fields dt{font-size:12px;font-weight:700}.project-safety-fields dd{margin:5px 0 0;font-size:13px;line-height:1.6;white-space:pre-wrap}#project-safety{padding:0 4px}.presenting .project-safety p,.presenting .project-safety-fields dd{font-size:14px}
@media print{.expand-control,.complete-control,.drag-board{display:none!important}.work-card{break-inside:auto}.work-card-header{break-after:avoid}.project-safety-fields>div{break-inside:avoid}}
/* Discussion status is stored separately from RI&E risk scores. */
#safety-form .safety-step>span{background:var(--red);flex-shrink:0}
#safety-form.discussed .safety-step>span{background:var(--green)}
.safety-section{margin:20px 0;border-bottom:1px solid var(--line);padding-bottom:14px}
.safety-section>.safety-step{list-style:none;cursor:pointer;margin:0;padding:6px 0;font-weight:700}
.safety-section>.safety-step::-webkit-details-marker{display:none}
.safety-section>.safety-step::after{content:'▸';margin-left:auto;color:var(--muted)}
.safety-section[open]>.safety-step{margin-bottom:16px}
.safety-section[open]>.safety-step::after{content:'▾'}
.safety-section>.safety-step:focus-visible{outline:3px solid #e8782690;outline-offset:3px}
.discussion-confirmation{border:1px solid var(--line);border-radius:8px;padding:16px;margin-top:20px;background:#f6f8f8}
.discussion-confirmation .check-label{font-weight:700;font-size:15px;cursor:pointer}
.discussion-confirmation p{font-size:12px;color:var(--red);margin:10px 0}
.discussion-confirmation small{color:var(--muted)}
.discussed .discussion-confirmation p{color:var(--green)}
@media print{#safety-form .safety-step>span{print-color-adjust:exact}.discussion-confirmation small,.safety-section>.safety-step::after{display:none}.safety-section{break-inside:auto}}

.project-safety-details>summary{cursor:pointer;font-size:16px;font-weight:700;padding:4px 0}.project-safety-details[open]>summary{margin-bottom:14px}.project-safety-details>summary:focus-visible{outline:3px solid #e8782690;outline-offset:3px}

.rie-highlights{margin-top:12px}.rie-highlights h4{font-size:13px;margin:0 0 5px}.safety-cell .rie-ranking{font-size:11px;color:var(--muted)}.rie-highlights ol{margin:10px 0 0;padding-left:20px}.rie-highlights li{font-size:12px;line-height:1.5;padding:8px 0;overflow-wrap:anywhere;border-top:1px solid var(--line);break-inside:avoid}.rie-highlights strong,.rie-highlights small,.rie-highlight-score{display:block}.rie-highlight-score{font-size:11px;color:#a43732;font-weight:700;margin:3px 0}.rie-highlights small{font-size:11px;color:var(--muted)}.rie-highlights summary{cursor:pointer;font-size:11px;font-weight:600;margin-top:6px}.safety-cell .rie-highlight-note{margin-top:12px;font-size:12px;color:#8c5b20}.rie-highlights details p{margin-top:6px}.presenting .rie-highlights li{font-size:14px}

.rie-status.is-pending{color:var(--red)}.rie-status.is-discussed{color:var(--green)}.project-rie-status{font-size:12px;font-weight:700;line-height:1.5;margin:12px 0 0}
.drawing-tools{background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:8px;padding:12px 15px;margin-bottom:15px}.drawing-tool-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.drawing-tool-row+.drawing-tool-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.drawing-tool-row label{display:flex;align-items:center;gap:8px;font-size:12px}.drawing-tool-row input[type=number],.drawing-tool-row select{width:75px;min-height:32px;padding:5px 7px;margin:0}.drawing-tool-row .muted{font-size:12px;line-height:1.5}.editor-stage{background-image:linear-gradient(to right,#d6dfe3 1px,transparent 1px),linear-gradient(to bottom,#d6dfe3 1px,transparent 1px)}.editor-stage.grid-off{background-image:none}.draw-area{position:absolute;pointer-events:none;border:2px dashed var(--orange);z-index:2}.draw-area>span{position:absolute;top:0;left:0;font-size:10px;line-height:1.4;background:var(--orange);color:#fff;padding:3px 6px;white-space:nowrap}.area-preview{border-color:var(--navy);background:#20354410}.area-preview>span{background:var(--navy)}.drawing-preview{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.eraser-cursor{position:absolute;border:1px solid var(--navy);border-radius:50%;background:#ffffff60;pointer-events:none;z-index:4}.editor-tools .button:disabled{cursor:default}

.project-planning{display:inline-flex;align-items:center;gap:6px 10px;flex-wrap:wrap;border-radius:5px;padding:5px 7px;font-size:12px;line-height:1.5;max-width:100%}.project-planning.planning-normal{padding-left:0}.project-planning.planning-orange{color:#a45924;background:#fff0e3;font-weight:700}.project-planning.planning-red{color:#a43732;background:#fbecea;font-weight:700}.project-planning small{color:inherit;font-size:10px;letter-spacing:0;margin:0}.work-card-summary .project-planning{align-self:flex-start}.work-card-footer .project-planning small{font-size:10px;letter-spacing:0;color:inherit;margin:0}@media print{.project-planning{print-color-adjust:exact}}

.presentation-clock{display:none}.presenting .board-toolbar input[type=date]{height:42px;min-height:42px}.presenting .presentation-clock{display:flex;align-items:center;height:42px;gap:18px;padding:4px 12px;background:var(--navy);color:white;border-radius:8px}.presentation-clock small{display:block;font-size:9px;line-height:11px;color:#c9d4db;margin-bottom:0}.presentation-clock time{display:block;font-size:18px;line-height:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}.presentation-clock strong{display:block;font-size:16px;line-height:20px;white-space:nowrap}@media(max-width:780px){.presenting .presentation-clock{width:100%;justify-content:space-between;gap:12px}.presentation-clock time{font-size:18px}.presentation-clock strong{font-size:16px}}

/* Full-screen project view keeps its controls visible while the content is zoomed. */
.project-viewer{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border-radius:0;background:var(--bg);overflow:hidden}
.project-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.project-view-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:white;border-bottom:1px solid var(--line)}
.project-view-header>div:first-child{min-width:0}.project-view-header h2{font-size:22px;margin:0 0 4px;overflow-wrap:anywhere}.project-view-header small{color:var(--muted)}
.project-view-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.project-zoom-value{min-width:45px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.project-view-scroll{overflow:auto;overscroll-behavior:contain;padding:16px;min-height:0}.project-view-content{margin:0 auto;background:white;padding:20px;border:1px solid var(--line);border-radius:8px;transform-origin:top left}
.work-card-header h3[role=button]{cursor:pointer}.work-card-header h3[role=button]:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
@media(max-width:780px){.project-view-header{padding:12px;flex-direction:column;align-items:stretch;gap:10px}.project-view-header h2{font-size:18px}.project-view-tools{gap:6px}.project-view-tools .button{padding:7px 9px;font-size:12px;min-height:34px}.project-view-content{padding:12px}.project-view-content .work-card-footer{grid-template-columns:1fr 1fr}}

/* Board notes persist independently of the selected dagstart date. */
.board-content{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px}.board-content>.project-grid,.board-content>.board-grid{min-width:0}.notes-panel{background:white;border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.notes-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.notes-heading h2{font-size:19px;margin:0;display:flex;gap:8px;align-items:center}.notes-hint{font-size:12px;color:var(--muted);margin:10px 0 14px}.notes-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}.board-note{padding:12px;border-radius:7px;border:1px solid #00000016;border-left:4px solid var(--note-accent);background:var(--note-bg);color:var(--ink);break-inside:avoid}.note-yellow{--note-bg:#fff8d7;--note-accent:#c69b16}.note-orange{--note-bg:#fff0e3;--note-accent:#d97528}.note-red{--note-bg:#fbecea;--note-accent:#b94740}.note-blue{--note-bg:#eaf3fb;--note-accent:#377cb1}.note-green{--note-bg:#eaf5ed;--note-accent:#378354}.note-white{--note-bg:#fff;--note-accent:#9aa8b2}.note-content{display:flex;align-items:flex-start;gap:10px}.note-content>div{min-width:0;flex:1}.note-content input{margin:2px 0;cursor:pointer}.board-note p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;margin:0}.note-date{display:block;font-weight:700;font-size:12px;margin-bottom:5px}.note-actions{display:flex;align-items:center;gap:6px;margin-top:10px}.note-actions .button{font-size:11px;padding:3px 7px;min-height:28px;background:#ffffff60}.note-actions small{font-size:11px;flex:1}.note-actions button:disabled{cursor:default}.notes-empty{font-size:13px;line-height:1.6;color:var(--muted);padding:10px 0}.presenting .board-note p{font-size:16px}
@media(max-width:1250px){.board-content{grid-template-columns:minmax(0,1fr) 270px}.board-content .board-grid{grid-template-columns:1fr}}
@media(max-width:900px){.board-content{grid-template-columns:1fr}.notes-panel{width:100%}}
@media print{.board-content{grid-template-columns:minmax(0,1fr) 250px}.note-management,.note-content input,.notes-hint{display:none!important}.board-note{print-color-adjust:exact}.notes-panel{padding:10px}}

.note-form .form-grid{margin-top:16px}

.presentation-editor .sidebar{display:none}
.presentation-editor .heading-actions{flex-wrap:wrap}.presentation-editor [data-action=save-content]{white-space:normal}

.drag-board{cursor:grab;touch-action:none;user-select:none;flex-shrink:0}.drag-board:active{cursor:grabbing}.project-drag-row{display:flex;justify-content:flex-end;padding:8px 12px 0}.is-dragging{opacity:.55}.drop-target{box-shadow:inset 0 4px 0 var(--orange)!important}.drop-target.drop-after{box-shadow:inset 0 -4px 0 var(--orange)!important}

.rie-highlights-toggle{margin-top:8px}.rie-highlights-toggle>summary{cursor:pointer;font-size:13px;font-weight:700;line-height:1.5;color:var(--ink)}.rie-highlights-toggle>summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* Keep the information row compact; long content scrolls inside each panel. */
.safety-cell{min-width:0;max-height:300px;overflow-y:auto;overflow-wrap:anywhere;overscroll-behavior:contain}
.safety-cell:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
@media print{.safety-cell{max-height:none;overflow:visible}}

.note-preview{cursor:pointer;border-radius:3px}.note-preview p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.note-preview:focus-visible,.note-popup-text:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.note-popup-text{max-height:55vh;overflow-y:auto;overscroll-behavior:contain;cursor:pointer}.note-popup-text p{font-size:16px;line-height:1.6}.note-popup-hint{font-size:12px;color:var(--muted);margin:10px 0 0}
@media print{.note-preview p{display:block;overflow:visible}.note-popup-text{max-height:none;overflow:visible}.note-popup-hint{display:none}}

.note-more{font-size:11px;font-weight:600;text-decoration:underline;color:var(--ink)}.note-more:not([hidden]){display:block;margin-top:4px}.note-more[hidden]{display:none}@media print{.note-more{display:none!important}}

/* QR shortcuts sit beside the assembly point and expand without a fixed item limit. */
.daily-banner{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(240px,1.15fr)}.daily-banner>div{min-width:0}.daily-banner .qr-panel{padding:14px 16px;background:#1c3a50}.qr-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.qr-panel-heading h3{margin:0}.qr-shortcuts{display:flex;gap:12px;overflow-x:auto;align-items:flex-start;padding:2px 2px 8px}.qr-shortcut{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 80px;border:0;padding:0;background:transparent;color:white;cursor:pointer}.qr-shortcut img{width:80px;height:80px;object-fit:contain;background:white;border:4px solid white;border-radius:4px;image-rendering:pixelated}.qr-shortcut span{font-size:11px;line-height:1.35;overflow-wrap:anywhere;max-width:100%;text-align:center}.qr-add{align-self:center;flex-shrink:0}.daily-banner .qr-empty{font-size:13px;line-height:1.5}.qr-manage-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.qr-manage-preview{display:flex;align-items:center;gap:14px;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:var(--ink);min-width:0;max-width:100%}.qr-manage-preview img{width:68px;height:68px;object-fit:contain;background:white;flex-shrink:0}.qr-manage-preview strong{overflow-wrap:anywhere}.qr-popup{text-align:center}.qr-popup img{display:block;width:min(100%,480px,60vh);height:auto;aspect-ratio:1;object-fit:contain;background:white;image-rendering:pixelated;margin:auto}.qr-current-image{display:block;width:120px;height:120px;object-fit:contain;background:white;margin:16px 0}.qr-form input[type=file]{max-width:100%;font-size:12px}.qr-form label+label{margin-top:16px}.qr-form .muted{font-size:12px}.heading-actions{flex-wrap:wrap}
@media(max-width:1100px){.daily-banner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.daily-banner .qr-panel{grid-column:1/-1}}
@media(max-width:780px){.daily-banner{grid-template-columns:minmax(0,1fr)}.qr-shortcuts{gap:10px}}
.presenting [data-action="qr-manage"],.presenting [data-action="qr-new"],.presenting [data-action="qr-edit"],.presenting [data-action="qr-delete"],.presenting .qr-empty{display:none}
@media print{.qr-manage,.qr-add{display:none}.qr-shortcuts{overflow:visible;flex-wrap:wrap}.qr-panel{print-color-adjust:exact}}

.presentation-sync{display:none}.presenting .presentation-sync{display:inline;font-size:11px;color:var(--muted)}.presenting .presentation-sync.sync-error{color:var(--red)}

.board-choice-open{display:block;width:100%;flex:1;border:0;background:transparent;padding:0;text-align:left;color:inherit}
.board-choice-open:focus-visible{outline-offset:-4px}
.board-choice-actions{padding:0 23px 23px}

/* Shared RI&E catalogue management. */
.rie-filters{display:flex;gap:20px;align-items:end;margin:24px 0 12px;flex-wrap:wrap}
.rie-filters label{flex:1;min-width:220px}
.rie-catalogue-group{background:white;border:1px solid var(--line,#d6e0e5);border-radius:10px;margin:12px 0;overflow:hidden}
.rie-catalogue-group>summary{display:flex;align-items:center;gap:16px;padding:18px 20px;cursor:pointer}
.rie-catalogue-group>summary::before{content:'▸';color:#ed7a20}
.rie-catalogue-group[open]>summary::before{content:'▾'}
.rie-catalogue-group>summary>span:first-of-type{flex:1;min-width:0}
.rie-catalogue-group summary small{display:block;color:#697d89;margin-bottom:5px}
.rie-catalogue-group summary strong{overflow-wrap:anywhere}
.rie-catalogue-item{border-top:1px solid #d6e0e5;padding:20px}
.rie-item-heading{display:flex;align-items:start;gap:16px;justify-content:space-between}
.rie-item-heading h3{margin:0;overflow-wrap:anywhere}
.rie-item-heading .button{flex-shrink:0}
.rie-catalogue-item dl{margin:16px 0}
.rie-catalogue-item dt{font-size:12px;font-weight:700;margin-top:12px}
.rie-catalogue-item dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}
.rie-add-row{padding:0 20px 20px}
.rie-score-fields{margin:20px 0}.rie-score-fields>summary{cursor:pointer;font-weight:700;padding:12px 0}
.rie-score-fields fieldset{border:1px solid #d6e0e5;border-radius:8px;margin:12px 0;padding:16px;min-width:0}
.rie-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
#rie-form small{display:block;color:#697d89;font-weight:400;margin-top:6px}
@media(max-width:600px){.rie-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rie-catalogue-group>summary{padding:14px;gap:10px}.rie-catalogue-item{padding:14px}.rie-item-heading{flex-wrap:wrap}}
