:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#243536;background:#f3f6f5;font-size:16px;font-synthesis:none;--teal:#086963;--pale:#e8f3ef;--border:#d8e2df;--muted:#637773;--red:#b32828}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{border:1px solid var(--border);background:#fff;color:#294541;min-height:46px;border-radius:10px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;line-height:1.25;transition:background .12s}button:hover{background:#edf5f2}button:active{transform:translateY(1px)}button:disabled{opacity:.42;cursor:default;transform:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #348bda;outline-offset:3px}button svg{width:21px;height:21px;flex-shrink:0}.primary,button.active,button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}.primary:hover,button.active:hover{background:#075851}.quiet{border-color:transparent;background:transparent}.danger{color:var(--red)}.icon-only{padding:10px;width:46px;flex-shrink:0}.icon-only span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}input,select,textarea{width:100%;border:1px solid #bdceca;background:#fff;color:#203733;border-radius:8px;min-height:46px;padding:10px 11px}input::placeholder,textarea::placeholder{color:#85938f}textarea{resize:vertical;line-height:1.4;min-height:100px}input[type=range]{accent-color:var(--teal);padding:0;border:none;min-height:32px}input[type=checkbox]{accent-color:var(--teal);width:22px;height:22px;min-height:0;margin:0;flex-shrink:0}label{display:flex;flex-direction:column;gap:6px;font-size:.94rem;font-weight:600}label.check{flex-direction:row;align-items:center;gap:10px;min-height:42px;font-weight:500}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.muted{color:var(--muted);font-size:.875rem;line-height:1.5}.eyebrow{font-size:.73rem;font-weight:800;color:var(--teal);letter-spacing:.13em;text-transform:uppercase;margin:0 0 5px}h1,h2,h3,p{margin-top:0}h1{font-size:1.22rem;margin-bottom:5px}h2{font-size:1.17rem}h3{font-size:1rem}.app-layout{display:grid;grid-template-columns:300px minmax(0,1fr);height:100dvh;overflow:hidden}.sidebar{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border);min-height:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:21px 20px 17px}.brand img{width:36px;height:36px;border-radius:10px}.brand strong{font-size:1.32rem;letter-spacing:-.04em}.brand .badge{font-size:.7rem;letter-spacing:.05em;background:var(--pale);padding:4px 6px;border-radius:5px;color:var(--teal);margin-left:auto}.sidebar-actions{padding:0 16px 14px;display:grid;grid-template-columns:1fr 46px;gap:8px}.sidebar-scroll{overflow:auto;min-height:0;flex:1;scrollbar-gutter:stable}.case-section{padding:0 12px}.case-heading{display:flex;align-items:center;justify-content:space-between;margin:8px 5px 9px}.case-heading h2{font-size:.85rem;margin:0;color:var(--muted)}.case-row{display:flex;align-items:center;border-radius:11px;margin-bottom:6px;border:1px solid transparent}.case-row.selected{background:var(--pale);border-color:#b7d7ce}.case-row .case-open{flex:1;min-width:0;display:block;text-align:left;background:transparent;border:none;padding:12px 10px}.case-open strong{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.95rem}.case-open small{display:block;font-size:.78rem;font-weight:400;color:var(--muted);margin-top:4px}.case-row .delete-case{border:none;background:transparent;color:#687c77;width:40px;min-height:44px;padding:9px}.case-row .delete-case:hover{color:var(--red);background:#feecec}.sidebar-fields{border-top:1px solid var(--border);padding:18px 18px 22px;display:flex;flex-direction:column;gap:14px;margin-top:18px}.sidebar-fields textarea{font-size:.95rem;min-height:103px}.sidebar-bottom{padding:10px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}.save-state{font-size:.75rem;color:#486d61;line-height:1.35;flex:1}.save-state:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#399376;margin-right:5px}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.main-top{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;gap:16px;background:#fff;border-bottom:1px solid var(--border)}.main-title{min-width:0}.main-title h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.main-title .muted{font-size:.85rem}.top-actions{display:flex;gap:8px;flex-shrink:0}.workspace{display:flex;flex:1;min-height:0;min-width:0}.editor{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.tabs{display:flex;padding:10px 22px 0;background:#fff;gap:22px;border-bottom:1px solid var(--border)}.tab{position:relative;min-height:48px;border:0;border-radius:0;background:none;padding:10px 5px;color:var(--muted);font-weight:600}.tab[aria-selected=true]{color:var(--teal)}.tab[aria-selected=true]:after{content:"";position:absolute;height:3px;background:var(--teal);left:0;right:0;bottom:0;border-radius:3px 3px 0 0}.nav-line{display:flex;align-items:center;gap:8px;padding:10px 22px;background:#fff}.nav-line select{min-width:0;max-width:480px;margin:auto;border-color:transparent;text-align:center;font-weight:600}.tools{padding:0 22px 12px;display:flex;gap:7px;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--border)}.tool{font-size:.88rem;min-height:44px;padding:8px 11px}.symbol{display:inline-block;width:15px;height:15px;background:var(--mark);border-radius:50%;flex-shrink:0}.symbol.exit{clip-path:polygon(50% 0,60% 32%,85% 10%,73% 41%,100% 50%,69% 60%,87% 87%,58% 73%,50% 100%,39% 72%,12% 88%,29% 60%,0 50%,28% 39%,12% 10%,40% 29%);border-radius:0;width:20px;height:20px}.symbol.other,.symbol.incised,.symbol.bruise{border-radius:3px;width:18px;height:12px}.symbol.waypoint{width:8px;height:8px}.symbol.trajectory{width:24px;height:3px;position:relative;align-self:center}.symbol.trajectory:after{content:"";position:absolute;right:-1px;top:-3px;border-left:6px solid var(--mark);border-top:4px solid transparent;border-bottom:4px solid transparent}.tool[aria-pressed=true] .symbol{box-shadow:0 0 0 2px #ffffff90}.work-area{position:relative;display:flex;flex:1;min-height:260px;min-width:0;background:#edf2f0;overflow:hidden}.stage{flex:1;overflow:auto;position:relative;min-width:0;min-height:0;overscroll-behavior:contain}.paper-wrap{display:flex;align-items:center;justify-content:center;padding:20px 24px;width:max-content;min-width:100%}.diagram-canvas{display:block;background:#fff;box-shadow:0 3px 20px #143c3212;touch-action:none}.volume-stage{position:relative;overflow:hidden;min-height:260px;background:#f3f6f5}.volume-stage canvas{display:block;width:100%;height:100%;touch-action:none}.view-label{position:absolute;top:16px;left:20px;z-index:2;background:#ffffffd9;border:1px solid var(--border);padding:9px 12px;border-radius:30px;color:#44635b;font-size:.85rem;pointer-events:none}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;border-top:1px solid var(--border);background:#fff;gap:12px;min-height:56px}.canvas-toolbar .group{display:flex;align-items:center;gap:6px}.canvas-toolbar button{min-height:36px;min-width:36px;padding:6px;font-size:.86rem;border:0}.canvas-toolbar label{font-size:.82rem}.canvas-toolbar .zoom-value{min-width:42px;text-align:center;color:var(--muted);font-size:.8rem}.view-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 22px 10px;background:#fff}.view-controls label{font-weight:500;font-size:.85rem;flex-direction:row;align-items:center;gap:8px}.view-controls input[type=range]{width:100px}.view-controls select{width:auto;min-height:38px;font-size:.85rem}.route-strip{background:#fff;border-top:1px solid var(--border);padding:8px 18px;max-height:160px;overflow:auto}.route-heading{display:flex;align-items:center;justify-content:space-between}.route-heading h2{margin:0;font-size:.93rem}.route-heading button{min-height:38px;padding:6px 10px;font-size:.86rem}.route-list{display:flex;gap:8px;flex-wrap:wrap;padding-top:6px}.route-chip{font-size:.83rem;min-height:38px;border-radius:7px;font-weight:500}.route-chip.selected{border-color:var(--teal);background:var(--pale)}.credit{text-align:right;color:#72827c;font-size:.69rem;padding:7px 20px;background:#fff}.inspector{width:282px;flex-shrink:0;background:#fff;border-left:1px solid var(--border);overflow:auto;padding:18px;display:flex;flex-direction:column;gap:18px}.inspector header{display:flex;align-items:center;justify-content:space-between}.inspector h2{margin:0;font-size:1.25rem}.inspector section{border-top:1px solid var(--border);padding-top:17px;display:flex;flex-direction:column;gap:14px}.inspector .range-label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}.inspector .range-value{font-variant-numeric:tabular-nums;color:var(--teal)}.inspector .help-text{font-size:.82rem;line-height:1.45;color:var(--muted);margin:0}.inspector [data-action=delete-point],.inspector [data-action=delete-route]{margin-top:auto}.mobile-only{display:none}.banner{position:absolute;z-index:40;left:20px;right:20px;bottom:20px;background:#fff4dd;border:1px solid #e8c175;border-radius:10px;padding:14px;font-size:.9rem;box-shadow:0 4px 16px #0001}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);background:#203f37;color:#fff;z-index:100;padding:13px 20px;border-radius:10px;box-shadow:0 5px 25px #0002;max-width:90vw;font-size:.93rem}.modal{border:1px solid var(--border);border-radius:16px;padding:0;max-width:680px;width:calc(100% - 32px);max-height:90dvh;box-shadow:0 20px 90px #15342c33;color:#263d35}.modal::backdrop{background:#132f2966;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal header{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--border)}.modal header h2{margin:0}.modal-body{padding:22px;overflow:auto;max-height:65dvh;line-height:1.55}.modal-body label{margin-bottom:15px}.modal footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.diagram-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.diagram-option{display:flex;flex-direction:column;font-size:.81rem;padding:9px;gap:9px;align-items:stretch;line-height:1.35}.diagram-option img{height:150px;width:100%;object-fit:contain}.empty-hint{padding:10px;color:var(--muted);font-size:.85rem}.modal .hint-box{background:var(--pale);padding:14px;border-radius:10px;color:#345c50;font-size:.9rem;margin-bottom:18px}.save-error{background:#ffe9e9;color:#842222;padding:12px 18px;font-size:.88rem}.loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:10px}.loading img{width:60px;height:60px}.loading h1{color:var(--teal)}[hidden]{display:none!important}.inline-fields{display:grid;gap:12px}.zone-fields{border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:12px}.zone-fields .field-row{grid-template-columns:repeat(4,1fr)}.preview-print{width:100%;height:auto;border:1px solid var(--border)}.keyboard{display:inline-block;padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:#f5f8f6;font-size:.82rem}#print-sheet{display:none}@media (min-width:1600px){.app-layout{grid-template-columns:330px minmax(0,1fr)}.inspector{width:310px}.sidebar-fields{padding:20px 22px}}@media (max-width:1150px){.app-layout{grid-template-columns:270px minmax(0,1fr)}.main-top{padding:16px}.top-actions .save-label span{display:none}.top-actions .save-label{width:46px;padding:10px}.inspector{position:absolute;right:0;top:0;bottom:0;z-index:25;box-shadow:-6px 0 24px #153d3215}.workspace{position:relative}.tools,.nav-line{padding-left:16px;padding-right:16px}.tool{font-size:.82rem}.tabs{gap:14px;padding-left:16px}.canvas-toolbar .hint{display:none}}@media (max-width:780px){.app-layout{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(340px,90vw);box-shadow:12px 0 40px #183d3b40;transform:translate(-110%);transition:transform .16s}.sidebar.open{transform:translate(0)}.mobile-only{display:inline-flex}.brand{padding-top:max(18px,env(safe-area-inset-top))}.main-top{padding:12px;gap:8px}.main-title h1{font-size:1.05rem}.main-title .eyebrow{display:none}.main-title .muted{font-size:.73rem}.top-actions{gap:5px}.top-actions .print-button span{display:none}.top-actions .print-button{width:46px;padding:10px}.tabs{padding-top:0;gap:0;justify-content:space-around}.tab{font-size:.92rem;flex:1}.nav-line{padding:7px 12px}.nav-line select{font-size:.85rem;padding:7px 2px}.tools{flex-wrap:nowrap;overflow-x:auto;padding:0 12px 9px;scrollbar-width:thin}.tool{white-space:nowrap;flex-shrink:0;font-size:.88rem}.canvas-toolbar{padding:6px 10px;flex-wrap:wrap;gap:0}.canvas-toolbar label{font-size:.8rem}.route-strip{padding:5px 12px;max-height:120px}.route-heading button{min-height:44px}.view-controls{padding:0 12px 7px;gap:7px}.credit{font-size:.64rem;padding:5px 12px}.diagram-grid{grid-template-columns:repeat(2,1fr)}.inspector{width:min(310px,90vw)}.view-label{top:10px;left:10px;font-size:.76rem}.paper-wrap{padding:16px}.work-area{min-height:230px}.main-top .menu-button{flex-shrink:0}.modal-body{padding:16px}.modal footer{padding:12px}.sidebar-bottom{padding-bottom:max(12px,env(safe-area-inset-bottom))}}@media print{@page{size:A4 portrait;margin:0}body>*{display:none!important}body>#print-sheet{display:block!important;width:210mm;height:297mm;margin:0;padding:0}#print-sheet img{display:block;width:210mm;height:297mm;object-fit:contain}}.update-info{background:#e8f3ef;color:#24594c;padding:9px 18px;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;gap:10px}.update-info button{min-height:38px;padding:7px 12px}.modal-body img{max-width:100%}.canvas-toolbar button{min-height:44px}.tool{min-height:46px}@media (max-width:780px){.canvas-toolbar .mobile-only{font-size:.82rem;padding:8px}.main-top .main-title{flex:1}.main-top .top-actions{gap:4px}}.clear-elements{width:100%;justify-content:center}.export-options{display:grid;gap:12px}.export-options button{justify-content:flex-start}#composition-preview:empty{display:none}@media (max-width:600px){.main-top{flex-wrap:wrap}.main-top .top-actions{width:100%;justify-content:flex-end}}.canvas-toolbar .group{gap:8px;flex-wrap:wrap}.canvas-toolbar .zoom-action{min-height:48px;min-width:108px;padding:10px 12px;border:2px solid var(--teal);border-radius:10px;background:var(--pale);color:var(--teal);font-size:1rem;font-weight:700;box-shadow:0 2px #08696318}.canvas-toolbar .zoom-action:hover{background:#d4e9e1}.canvas-toolbar .zoom-action:active{background:#bfded2}.canvas-toolbar .zoom-value{min-width:48px;font-size:1rem;font-weight:600;color:#294541;font-variant-numeric:tabular-nums}button.clear-elements{min-height:48px;background:var(--red);border:2px solid var(--red);color:#fff;font-weight:700}button.clear-elements:hover:not(:disabled){background:#922020;border-color:#922020}button.clear-elements:disabled{opacity:1;background:#f8e3e3;border-color:#d7a4a4;color:#8e2929}.route-heading .create-route{min-height:48px;padding:10px 16px;font-size:1rem;font-weight:700;border:2px solid var(--teal);box-shadow:0 2px #064d4926;gap:10px}.route-heading .create-route svg{width:24px;height:24px}.paper-wrap{overflow-anchor:none}.help-button{flex-shrink:0;border:1px solid var(--teal);background:var(--pale);color:var(--teal);font-size:1rem;padding:10px 16px}.help-steps{padding-left:24px}.help-steps li{padding-left:5px;margin-bottom:14px}.volume-marker-size{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#f5f9f7;flex:0 1 400px;min-width:0;max-width:100%}.marker-size-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.view-controls .marker-size-heading label{font-size:1rem;font-weight:600}.marker-size-heading output{font-size:1rem;font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums}.marker-size-actions{display:flex;align-items:center;gap:8px}.view-controls .marker-size-actions input[type=range]{width:auto;flex:1;min-width:40px;min-height:44px}.marker-size-actions button{min-height:46px;font-size:1rem}.marker-size-reset{flex-shrink:0}#volume-marker-size-help{font-size:.84rem;line-height:1.35;color:var(--muted)}.canvas-toolbar{flex-wrap:wrap}.marker-label-controls{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}.canvas-toolbar .marker-label-controls .check{font-size:1rem;min-height:44px;padding:4px 0;cursor:pointer}.inspector-dock{display:contents}#volume-controls-slot:empty,#inline-view-controls:empty{display:none}.app-layout[data-view=volume]{grid-template-columns:260px minmax(0,1fr)}.app-layout[data-view=volume] .main-top{padding-top:12px;padding-bottom:12px}.app-layout[data-view=volume] .route-strip{max-height:88px}.app-layout[data-view=volume] .canvas-toolbar .hint{display:none}.controls-docked .inspector-dock{display:flex;flex-direction:column;width:260px;flex-shrink:0;min-height:0;overflow:auto;background:#fff;border-left:1px solid var(--border)}.controls-docked .inspector{position:static;width:100%;flex-shrink:0;overflow:visible;border-left:0;border-top:1px solid var(--border);padding:16px;box-shadow:none}.controls-docked #view-controls{padding:16px;gap:16px;flex-direction:column;align-items:stretch}.controls-docked #view-controls>label:not(.check){flex-direction:column;align-items:stretch;font-size:1rem}.controls-docked #view-controls>label.check{font-size:1rem;min-height:44px}.controls-docked #view-controls select,.controls-docked #view-controls>label input[type=range]{width:100%;min-height:44px}.controls-docked .volume-marker-size{flex:0 0 auto;padding:8px;gap:8px}.controls-docked .marker-size-actions{gap:4px;flex-wrap:wrap}.controls-docked .marker-size-actions .marker-size-reset{width:100%}@media (max-width:999px){.app-layout[data-view=volume]{grid-template-columns:250px minmax(0,1fr)}}@media (max-width:780px){.app-layout[data-view=volume]{grid-template-columns:minmax(0,1fr)}}.drawing-help{flex-shrink:0;padding:8px 16px;background:#fff4dd;border-top:1px solid #e8c175;color:#493f26;font-size:.9rem;line-height:1.4;pointer-events:none}
