:root{--ink:#293b40;--muted:#6a7d72;--green:#237985;--mint:#dcecef;--line:#d8e1db;--red:#b94942;--header-height:42px;--bar-height:42px;--rail:58px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-size:12px}
*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden;background:#edf1ef}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:transparent;cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:2px}button,a{touch-action:manipulation}[hidden]{display:none!important}.button,.icon-button,.tool{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:5px;min-height:32px;white-space:nowrap;padding:5px 9px}.button:hover:not(:disabled),.icon-button:hover:not(:disabled),.tool:hover:not(:disabled){background:#dcecef}.button.primary{background:var(--green);color:white;font-weight:600}.button.primary:hover{background:#1b626c}.icon-button{width:32px;padding:5px;font-size:22px;flex-shrink:0}.icon-button svg,.output-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.app-bar{height:var(--bar-height);padding:4px 8px;display:flex;align-items:center;gap:4px;background:#fbfdfc;border-bottom:1px solid var(--line);position:relative;z-index:5}.settings-trigger{border:1px solid var(--line);background:white;max-width:300px}.settings-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis}.dimensions-trigger{color:var(--muted)}.bar-divider{height:22px;width:1px;background:var(--line);margin:0 6px}.bar-space{flex:1;min-width:0}.chevron{color:var(--muted)}.zoom{display:flex;gap:0;border-left:1px solid var(--line);margin-left:5px;padding-left:5px}.zoom button{min-width:30px;height:32px;border-radius:4px;font-size:18px}.zoom #zoom-fit{font-size:12px;min-width:65px}.more-dots{font-size:16px}.validation-trigger{color:#176b57;padding:5px 8px}.validation-trigger.has-issues{color:var(--red)}#validation-symbol{font-weight:600}#rotate-view{color:var(--muted)}#rotate-view[aria-pressed=true]{color:var(--green);background:var(--mint)}
.switch-label{display:flex;align-items:center;gap:7px;position:relative;min-height:32px;white-space:nowrap;cursor:pointer;touch-action:manipulation}.smart-control{margin-left:6px;color:var(--green)}.switch-label>span{pointer-events:none}.switch-label input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.switch{width:28px;height:17px;background:#aabab0;border-radius:12px;display:block;padding:2px;flex-shrink:0}.switch:after{content:'';display:block;width:13px;height:13px;border-radius:50%;background:white;transition:transform .15s}.switch-label input:checked+.switch{background:var(--green)}.switch-label input:checked+.switch:after{transform:translateX(11px)}.switch-label input:focus-visible+.switch{outline:2px solid var(--green);outline-offset:3px}
.issue{display:flex;align-items:flex-start;gap:7px;padding:9px 10px;background:#fff2ed;border-radius:5px;color:var(--red);font-size:12px;line-height:1.5;text-align:left}.issue .mark{font-weight:600}
.workspace{height:calc(100dvh - var(--header-height));position:relative}.course-tools{position:absolute;left:7px;top:5px;width:48px;padding:4px 3px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc;z-index:3;max-height:calc(100% - 10px);overflow:auto;scrollbar-width:none}.course-tools::-webkit-scrollbar{display:none}#obstacle-tools{display:flex;flex-direction:column;gap:3px}.course-tools .tool{width:40px;height:40px;flex-shrink:0;padding:6px}.tool.active{background:white;color:var(--green);box-shadow:inset 0 0 0 2px var(--green)}.course-tools .tool>span:not(.np-icon):not(.utility-icon):not(.stock-badge){display:none}.course-tools .tool svg{width:25px;height:25px;flex-shrink:0}.np-icon{display:flex}.stock-badge{display:grid;place-items:center;border:1px solid #47725d;border-radius:50%;width:22px;height:22px;font-size:12px}.utility-icon{font-size:24px;line-height:1}.tool-divider{width:26px;height:1px;background:var(--line);margin:3px 0}.delete-tool{color:var(--red);font-size:24px}#course-alert{display:none!important}.course-tools,.course-tools *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.course-tools .tool{touch-action:none;-webkit-touch-callout:none}
.drawing{height:100%;padding:5px 6px 5px 64px;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.canvas-wrap{background:white;border:1px solid var(--line);display:flex;flex-direction:column;position:relative;min-height:0;flex-shrink:0;overflow:hidden}.canvas-wrap,.canvas-wrap *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.canvas-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:center;gap:8px;flex-shrink:0;min-height:30px;padding:9px var(--arena-right,14px) 2px var(--arena-left,14px)}.plan-brand{display:block;width:85px;height:auto;max-width:100%;justify-self:start}.title-input{width:100%;min-width:0;text-align:center;font-size:var(--plan-heading-size,24px);font-weight:600;padding:0;border:0;outline:none;background:none;color:#171b19;line-height:1.25;user-select:text!important;-webkit-user-select:text!important;cursor:text}.title-input:focus{box-shadow:0 1px var(--green)}.plan-category{font-size:var(--plan-heading-size,24px);font-weight:600;text-align:right;color:#171b19;line-height:1.25;overflow-wrap:anywhere}#course{display:block;width:100%;flex:1;height:0;min-height:0;outline:none;touch-action:none}#course::selection,#course *::selection{background:transparent}svg text{font-family:Arial,Helvetica,sans-serif}.plan-footer{font-weight:400;font-variant-numeric:tabular-nums}.obstacle,.rotate-handle{cursor:grab}.obstacle:active,.rotate-handle:active{cursor:grabbing}.distance-label{pointer-events:none}.canvas-wrap[data-tool=note] svg,.canvas-wrap[data-adding=true] svg{cursor:crosshair}.rotation-controls [role=button]:focus-visible{outline:none;filter:drop-shadow(0 0 3px #237985)}
.popover{position:fixed;inset:48px auto auto 10px;margin:0;padding:16px;border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 36px #193d3326;background:#fbfdfc;color:var(--ink);width:min(380px,calc(100vw - 20px));max-height:calc(100dvh - 62px);overflow:auto;font-size:13px}.popover-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;margin:-5px -4px 10px 0}.popover-heading .icon-button{font-weight:400}.settings:popover-open{display:flex;flex-direction:column;gap:14px}.rules-setting{display:flex;align-items:flex-end;gap:5px}.rules-setting .field{flex:1;min-width:0}.rules-setting>a{display:grid;place-items:center;width:34px;height:36px;color:var(--green);text-decoration:none;font-size:20px}.field,.setting-group{display:flex;flex-direction:column;gap:6px}.label,.field{font-size:12px;color:var(--muted)}.field input,.field select,.dimension input{min-height:36px;border:1px solid var(--line);border-radius:5px;background:white;padding:7px 9px;font-size:13px;color:var(--ink);min-width:0}.category-options,.size-options{display:flex;gap:6px;flex-wrap:wrap}.category-chip,.size-chip{display:inline-flex;gap:6px;align-items:center;justify-content:center;min-height:36px;padding:7px 9px;font-size:13px;border:1px solid var(--line);border-radius:5px;background:white}.category-chip[aria-pressed=true],.size-chip:has(:checked){background:var(--mint);color:var(--green);border-color:#aacbb8}input[type=checkbox]{accent-color:var(--green);margin:0}.dimension{display:flex;gap:7px;align-items:center}.dimension input{width:75px}.view-options{border:0;padding:0;margin:0 0 15px;display:flex;flex-direction:column;gap:8px}.view-options label{display:flex;align-items:center;gap:8px;min-height:32px}.more-menu{left:auto;right:8px;width:240px}.more-menu:popover-open{display:flex;flex-direction:column;gap:4px}.more-menu>.button{justify-content:flex-start;min-height:38px}.mobile-zoom{display:flex;align-items:center;justify-content:space-between;border-block:1px solid var(--line);padding:5px 0;margin:4px 0}.popover::backdrop{background:transparent}
#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#243f35;color:white;padding:10px 16px;border-radius:7px;width:max-content;max-width:calc(100vw - 24px);font-size:12px;line-height:1.5;box-shadow:0 8px 30px #17271930;z-index:10;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(800px,94vw);max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:22px 26px;color:var(--ink);box-shadow:0 20px 90px #163b3340;background:#fcfdf9}dialog::backdrop{background:#173d314d;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.dialog-header h2{font-size:20px;font-weight:600;margin:0}dialog h3{font-size:13px;font-weight:600}dialog p{font-size:13px;line-height:1.6;color:var(--muted)}dialog b,dialog strong{font-weight:600}.help-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.manual-source{border-top:1px solid var(--line);padding-top:15px;margin-bottom:0}.manual-source a{color:var(--green)}#plan-editor{width:min(360px,94vw);padding:20px}#plan-editor .dialog-header{margin-bottom:16px}#plan-editor .field input,#plan-editor .field select{width:100%}.plan-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}#plan-editor-error{font-size:12px;color:var(--red);margin:12px 0 0}#plan-editor-error:empty{display:none}#validation-dialog{width:min(520px,94vw)}#validation-dialog .dialog-header{position:sticky;top:-22px;background:#fcfdf9;z-index:1;padding:4px 0 12px;margin-bottom:0}.course-metric{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}.metric-status{flex:0 0 20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;background:#edf5e9;color:#4d794b}.course-metric>div{min-width:0}.metric-label{display:block;color:var(--muted);font-size:12px}.course-metric strong{display:block;font-variant-numeric:tabular-nums;font-weight:600}.course-metric small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.course-metric.fail .metric-status{background:#fcf0ec;color:#a64441}.course-metric.fail strong{color:#a64441}.course-metric.pending .metric-status{background:#eff1ed;color:var(--muted)}.course-metric.pending strong{color:var(--muted)}.course-metric:focus{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}#dialog-issues{display:flex;flex-direction:column;gap:5px;margin-top:12px}.rule-details{font-size:12px;line-height:1.5;color:var(--muted);margin-top:14px}.rule-details summary{cursor:pointer}
@media(max-width:1150px){.dimensions-trigger{display:none}.smart-name{display:none}.settings-trigger{max-width:240px}.app-bar{gap:3px}}
@media(max-width:850px){.desktop-only{display:none!important}.app-bar .view-trigger{display:none}.settings-trigger{max-width:110px}.more-trigger{padding:5px}.validation-trigger #validation-label{display:none}.bar-divider{display:none}.smart-control{margin-left:2px}.app-bar{gap:2px}.app-bar .button{padding:5px 7px}}
@media(max-width:600px) and (orientation:portrait){:root{--bar-height:48px}.app-bar{padding:2px 5px}.app-bar .button,.app-bar .icon-button,.smart-control{min-height:44px}.settings-trigger{max-width:78px}.course-tools{left:5px;right:5px;top:auto;bottom:5px;flex-direction:row;justify-content:center;width:auto;height:50px;max-height:none;padding:3px;gap:0}.course-tools .tool{width:42px;height:44px;padding:6px}#obstacle-tools{flex-direction:row;gap:0}.tool-divider{width:1px;height:24px;margin:0 2px}.drawing{padding:4px 4px 60px}.canvas-top{grid-template-columns:minmax(0,1fr) auto;min-height:30px;gap:6px}.plan-brand{display:none}.title-input{text-align:left;font-size:var(--plan-heading-size,20px)}.plan-category{font-size:var(--plan-heading-size,20px);max-width:160px}.help-columns{grid-template-columns:1fr}.popover{top:54px}dialog{padding:18px}.popover .field input,.popover .field select,.dimension input{font-size:16px}.settings-trigger .chevron{display:none}}
@media(any-pointer:coarse){.popover button,.popover label,.popover input,.popover select,.popover a,dialog button{min-height:44px}.popover input,.popover select,#plan-editor input,#plan-editor select{font-size:16px}.app-bar{--bar-height:48px;height:48px}.app-bar button,.app-bar .switch-label{min-height:44px}.app-bar .icon-button{width:38px}.course-tools .tool{min-height:44px}.popover{top:54px}}
@media(max-height:500px) and (orientation:landscape){.app-bar{height:40px}.app-bar button,.app-bar .switch-label{min-height:36px}.course-tools{left:4px;top:4px;max-height:calc(100% - 8px);gap:0}.course-tools .tool{height:36px;min-height:36px}#obstacle-tools{gap:0}.tool-divider{margin:2px 0}.drawing{padding:3px 4px 3px 59px}.canvas-top{min-height:26px}.title-input,.plan-category{font-size:var(--plan-heading-size,24px)}.popover{top:44px;max-height:calc(100dvh - 50px)}}
@page{size:A4 landscape;margin:10mm}
@media print{html,body{background:white!important;overflow:visible!important;height:auto!important;margin:0!important;padding:0!important}.app-bar,.course-tools,.popover,dialog,#toast{display:none!important}.workspace{height:auto!important;margin:0!important;padding:0!important}.drawing{height:190mm!important;width:277mm!important;padding:0!important;display:flex!important}.canvas-wrap{border:0!important;width:277mm!important;height:190mm!important;background:white!important;overflow:visible!important}.canvas-top{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)!important;min-height:12mm!important;padding:0 var(--paper-arena-inset,0mm)!important}.plan-brand{display:block!important;width:30mm!important}.title-input,.plan-category{font-size:24px!important;font-weight:600!important}.title-input{text-align:center!important}.plan-category{max-width:none!important}#course{width:277mm!important;flex:1!important}.rotation-controls,.note-resize-controls,.path-controls,.palette-preview,.number-drag-preview{display:none!important}}

#view-panel>.field+.field{margin-top:12px}

.issue-popover{width:min(340px,calc(100vw - 16px));max-height:calc(100dvh - 16px)}.issue-popover p{margin:8px 0;color:var(--red);line-height:1.5}.issue-popover p+p{padding-top:8px;border-top:1px solid #efdad3}

/* Construction tools live beside the plan; the top bar handles the document/view. */
.course-tools .tool .smart-icon{width:22px;height:22px;fill:white;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.smart-tool{color:var(--green)}.smart-tool[aria-pressed=true]{background:white;box-shadow:inset 0 0 0 2px var(--green)}
.smart-tool[aria-pressed=true] .smart-disc{fill:white}
.smart-tool[aria-pressed=true] .smart-icon path,.smart-tool[aria-pressed=true] .smart-icon circle:not(.smart-disc){stroke:currentColor;fill:white}
.course-tools .validation-trigger{color:#176b57}.course-tools .validation-trigger.has-issues{color:var(--red)}
.export-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.export-trigger .chevron{color:inherit}.export-menu{inset:48px 8px auto auto;width:180px}
.export-menu:popover-open{display:flex;flex-direction:column;gap:4px}.export-menu .button{justify-content:flex-start;min-height:38px}
@media(max-width:850px){
 .app-bar{height:auto;min-height:48px;flex-wrap:wrap;gap:2px;padding:3px 5px}
 .app-bar .view-trigger{display:inline-flex}
 .app-bar .bar-space{flex:0 0 100%;height:0}
 .app-bar .icon-button{width:32px;min-height:36px}
 .app-bar .zoom{margin-left:0;padding-left:0;border-left:0}
 .app-bar .zoom button{min-width:26px;height:36px;min-height:36px}
 .app-bar .zoom #zoom-fit{min-width:54px}
 .app-bar .export-trigger{margin-left:auto;min-height:36px}
 .export-trigger>span{display:none}
 .popover{top:calc(var(--header-height) + 6px);max-height:calc(100dvh - var(--header-height) - 14px)}
}
@media(max-width:850px) and (any-pointer:coarse){
 .app-bar .icon-button,.app-bar .zoom button,.app-bar .export-trigger{min-height:44px}
}

#rotate-view{padding:3px}#rotate-view svg{width:24px;height:24px}

.course-tools .delete-tool svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* A4 landscape is independent of the editor orientation and manual zoom. */
@media print{.canvas-wrap{break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.preview-trigger{gap:5px}.preview-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
@media(max-width:850px){.app-bar .preview-trigger{padding:5px;min-width:32px}.preview-trigger>span{display:none}}
@media(max-width:850px) and (any-pointer:coarse){.app-bar .preview-trigger{min-height:44px}}

/* Small Safari viewports: all construction tools stay reachable, even with
   browser chrome visible. This affects the screen only, never A4 output. */
@media screen {
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body{height:var(--app-height,100dvh);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
 .workspace{height:calc(var(--app-height,100dvh) - var(--header-height) - env(safe-area-inset-top))}
 .canvas-top[data-layout="stacked"]{grid-template-columns:minmax(0,1fr);gap:1px;padding-top:6px;padding-bottom:2px;min-height:0}
 .canvas-top[data-layout="stacked"] .plan-brand,.canvas-top[data-layout="compact"] .plan-brand{display:none}
 .canvas-top[data-layout="stacked"] .title-input{text-align:center;line-height:1.2}
 .canvas-top[data-layout="stacked"] .plan-category{max-width:none;width:100%;line-height:1.2;text-align:right}
 .canvas-top[data-layout="compact"]{grid-template-columns:minmax(0,1fr) auto;gap:12px;min-height:0;padding-top:6px}
 .canvas-top[data-layout="compact"] .plan-category{max-width:50vw}
 .workspace[data-compact-tools] .course-tools{overflow:auto}
 .workspace[data-compact-tools="top"] .course-tools,.workspace[data-compact-tools="side"] .course-tools{display:grid;gap:0;padding:3px;justify-content:stretch;align-items:center;transform:none}
 .workspace[data-compact-tools="top"] .course-tools{grid-template-columns:repeat(5,minmax(0,1fr));width:var(--toolbox-max-width);height:88px}
 .workspace[data-compact-tools="side"] .course-tools{grid-template-columns:repeat(var(--compact-tool-columns),40px);width:var(--compact-tool-width);height:auto;max-height:none}
 .workspace[data-compact-tools="top"] #obstacle-tools,.workspace[data-compact-tools="side"] #obstacle-tools{display:contents}
 .workspace[data-compact-tools="top"] .tool-divider,.workspace[data-compact-tools="side"] .tool-divider{display:none}
 .workspace[data-compact-tools="top"] .course-tools .tool,.workspace[data-compact-tools="side"] .course-tools .tool{width:100%;min-width:0;height:40px;min-height:40px;padding:6px}
 .workspace[data-compact-tools="top"] .drawing{padding:100px 6px 6px}
 .workspace[data-compact-tools="side"] .drawing{padding:6px 6px 6px calc(var(--compact-tool-width) + 12px)}
 .popover{max-height:calc(var(--app-height,100dvh) - var(--header-height) - 14px)}
}
@media screen and (max-height:500px) and (min-width:601px) and (max-width:1000px){
 .app-bar{height:46px;min-height:46px;flex-wrap:nowrap;gap:2px;padding:1px 4px}
 .app-bar .bar-space{flex:1 1 0;height:auto}
 .app-bar .button,.app-bar .icon-button,.app-bar .zoom button{height:42px;min-height:42px;flex-shrink:0}
 .app-bar .icon-button{width:32px}
 .app-bar .zoom{margin:0;padding:0;border:0}
 .app-bar .zoom button{min-width:28px}
 .app-bar .zoom #zoom-fit{font-size:0;min-width:32px}
 .app-bar .zoom #zoom-fit:after{content:'⛶';font-size:22px}
 .app-bar #new-course,.app-bar #view-trigger{font-size:0;width:36px;padding:3px}
 .app-bar #new-course:before{content:'‹';font-size:25px}
 .app-bar #view-trigger:before{content:'☷';font-size:24px}
 .app-bar .settings-trigger{max-width:52px;padding:3px}
 .app-bar .preview-trigger,.app-bar .export-trigger{width:36px;min-width:36px;padding:4px;margin:0}
 .app-bar .preview-trigger>span,.app-bar .export-trigger>span{display:none}
 .app-bar .dimensions-trigger,.app-bar .bar-divider{display:none}
}
@media screen and (max-width:600px){
 .app-bar .zoom #zoom-fit{font-size:0;min-width:32px}
 .app-bar .zoom #zoom-fit:after{content:'⛶';font-size:22px}
}

/* Editor-only supplies placed inside the arena's perimeter band. */
@media screen{
 .workspace[data-edge-stock] .drawing{padding:5px 6px!important}
 .workspace[data-edge-stock] .course-tools{left:var(--stock-left);top:var(--stock-top);right:auto;bottom:auto;display:flex;align-items:center;justify-content:flex-start;gap:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;width:max-content;height:max-content;max-width:none;max-height:none;overflow:visible}
 .workspace[data-edge-stock][data-tools-layout="top"] .course-tools{flex-direction:row}
 .workspace[data-edge-stock][data-tools-layout="side"] .course-tools{flex-direction:column}
 .workspace[data-edge-stock] #obstacle-tools{display:contents}
 .workspace[data-edge-stock] .tool-divider{display:none}
 .workspace[data-edge-stock] .course-tools .tool{flex:none;min-width:0;min-height:0;width:var(--stock-slot);height:var(--stock-thickness);padding:var(--stock-padding,0);border-radius:5px;background:transparent;box-shadow:none}
 .workspace[data-edge-stock][data-tools-layout="side"] .course-tools .tool{width:var(--stock-thickness);height:var(--stock-slot)}
 .workspace[data-edge-stock] .course-tools .tool svg{width:var(--stock-icon);height:var(--stock-icon)}
 .workspace[data-edge-stock] .course-tools .tool .utility-icon{font-size:var(--stock-icon)}
 .workspace[data-edge-stock] .stock-badge{width:var(--stock-icon);height:var(--stock-icon);font-size:calc(var(--stock-icon)*.5);background:transparent}
 /* One interaction treatment for every supply and action, without tinted tiles. */
 .workspace[data-edge-stock] .course-tools .tool:is(:hover,:focus-visible):not(:disabled){background:transparent;box-shadow:inset 0 0 0 1px #536159}
 .workspace[data-edge-stock] .course-tools .tool:is(.active,[aria-pressed="true"]){background:transparent;box-shadow:inset 0 0 0 2px var(--green)}
 .workspace[data-edge-stock] .course-tools .tool:is(.active,[aria-pressed="true"]):hover{box-shadow:inset 0 0 0 3px var(--green)}
}

@media (any-pointer:coarse){
 .workspace[data-edge-stock] .course-tools .tool{position:relative}
 .workspace[data-edge-stock] .course-tools .tool:before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%}
}

/* Two bounded editor rails: supplies on the short side, actions at the bottom. */
@media screen{
 .workspace[data-edge-stock] .drawing{padding:4px!important}
 .workspace[data-edge-stock] .course-tools .tool{min-width:0!important;min-height:0!important;width:var(--stock-slot)!important;height:var(--stock-thickness)!important;flex:0 0 auto}
 .workspace[data-edge-stock][data-tools-layout="side"] .course-tools:not(.course-actions) .tool{width:var(--stock-thickness)!important;height:var(--stock-slot)!important}
 .workspace[data-edge-stock] #course-actions{flex-direction:row!important}
 .canvas-top,.canvas-top[data-layout="compact"]{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;min-height:0;padding-top:5px;padding-bottom:2px}
 .canvas-top[data-layout="compact"]{grid-template-columns:minmax(0,1fr) auto;gap:6px}
 .canvas-top .title-input{text-align:left;line-height:1.2;text-overflow:ellipsis}
 .canvas-top .plan-category{max-width:58vw;text-align:right;line-height:1.2;overflow-wrap:normal}
 .canvas-top[data-layout="compact"] .plan-category{max-width:min(58vw,180px)}
}
@media print{
 .canvas-top{grid-template-columns:auto minmax(0,1fr) auto!important}
 .title-input{text-align:left!important}
}

/* The canvas can use the bottom safe area; keep touch controls above the home gesture. */
:root{--device-safe-bottom:env(safe-area-inset-bottom,0px);--device-safe-top:env(safe-area-inset-top,0px)}

/* Brand placement follows the displayed arena, including manual view rotation. */
@media screen{
 .canvas-wrap[data-orientation="landscape"] .canvas-top{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .canvas-wrap[data-orientation="landscape"] .plan-brand{display:block;width:85px;max-width:100%}
 .canvas-wrap[data-orientation="landscape"] .title-input{text-align:center}
 .canvas-wrap[data-orientation="landscape"] .plan-category{max-width:100%;overflow-wrap:anywhere}
 .canvas-wrap[data-orientation="portrait"] .canvas-top{grid-template-columns:minmax(0,1fr) auto}
 .canvas-wrap[data-orientation="portrait"] .canvas-top .plan-brand{display:none}
 .canvas-wrap[data-orientation="portrait"] .title-input{text-align:left}
}
@media print{
 .canvas-top{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)!important}
 .title-input{text-align:center!important}
 .canvas-wrap[data-orientation="portrait"] .canvas-top{grid-template-columns:minmax(0,1fr) auto!important}
 .canvas-wrap[data-orientation="portrait"] .canvas-top .plan-brand{display:none!important}
 .canvas-wrap[data-orientation="portrait"] .title-input{text-align:left!important}
}

/* Advisories use the existing warning UI; red rule violations always take priority. */
:root{--amber:#a85f09}
.course-tools .validation-trigger.has-recommendations:not(.has-issues){color:var(--amber)}
.issue-row{display:flex;align-items:center;gap:7px}.issue-row .issue{flex:1;min-width:0}
.issue.orange,.issue-popover p.recommendation{color:var(--amber);background:transparent}
.issue small,.issue-popover p small{display:block;font-size:12px;line-height:1.5;margin-top:5px}
.hide-recommendation{font-size:12px;white-space:normal;min-height:40px}
.issue-popover .hide-recommendation{display:block;margin-top:8px}
#hidden-recommendations:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-top:12px}
@media(max-width:600px){.issue-row{flex-wrap:wrap}.issue-row .hide-recommendation{margin-left:24px}}

.course-metric.recommendation .metric-status{background:#fff3e3;color:var(--amber)}.course-metric.recommendation strong{color:var(--amber)}

/* Auxiliary tools face the supplies across the other short edge. */
@media screen{
 .workspace[data-edge-stock][data-tools-layout="side"] #course-actions{flex-direction:column!important}
 .workspace[data-edge-stock][data-tools-layout="side"] #course-actions .tool{width:var(--stock-thickness)!important;height:var(--stock-slot)!important}
 .workspace[data-edge-stock] .course-tools.return-target{outline:2px dashed #237985;outline-offset:5px;background:transparent}
}
.edit-menu:popover-open{display:flex;flex-direction:column;gap:3px}.edit-menu .button{justify-content:flex-start;min-height:40px}.edit-menu hr{width:100%;border:0;border-top:1px solid var(--line)}.editing-measurements{pointer-events:none}#draft-status:empty{display:none}#draft-status{font-size:13px;color:var(--ink)}
@media screen{body[data-bar-layout="side"] .app-bar #edit-trigger{grid-area:8/1}body[data-bar-layout="side"][data-bar-columns="3"] .app-bar #edit-trigger{grid-area:2/3}}

.validation-trigger.training{color:var(--ink)}

@media screen{
 .workspace[data-edge-stock] .course-tools .delete-tool{color:#111111}
 .workspace[data-edge-stock] .course-tools .delete-tool:disabled{color:#999999;opacity:1;cursor:default;background:transparent;box-shadow:none}
}
@media print{.canvas-top{transform:translateY(var(--print-heading-offset,0px))}}

/* The check button carries the only advisory marker outside its dialog. */
.status-icon{display:block;width:20px;height:20px;flex-shrink:0;fill:none}
.issue .mark{flex:0 0 20px;margin-top:0}
.metric-status:has(.status-icon){background:transparent!important;border-radius:0}
#validation-symbol{display:flex;align-items:center;justify-content:center}
.workspace[data-edge-stock] #validation-symbol .status-icon{width:var(--stock-icon);height:var(--stock-icon)}

/* Dated rule provenance stays inside settings, never in the printable plan. */
.rules-note{font-size:12px;line-height:1.45;margin:6px 0;max-width:100%;overflow-wrap:anywhere;color:var(--ink,#26302c)}

/* Inline note editing stays in the plan; neutral black-and-white print geometry. */
.canvas-wrap .note-inline-editor{position:absolute;z-index:8;box-sizing:border-box;margin:0;padding:4px 6px;border:1px solid #111;border-radius:0;background:#fff;color:#111;font-family:Arial,Helvetica,sans-serif;font-weight:400;text-align:center;line-height:1.3;outline:1px solid #111;box-shadow:none;user-select:text!important;-webkit-user-select:text!important;touch-action:auto;-webkit-touch-callout:default}
@media print{.note-inline-editor{display:none!important}}

.course-tools .validation-trigger[data-validation-status="info"]{color:#286ca8}

#validation-context{margin:8px 0 12px;color:var(--ink)}
#validation-context>span{display:block}

.note-resize-controls [role=button]:hover path,.note-resize-controls [role=button]:focus-visible path{stroke:#237985;stroke-width:2.6}.note-resize-controls [role=button]:focus-visible{outline:none}
