:root{--green-900: #1F4D3A;--green-700: #3C7A4E;--lime: #A8C64A;--gold: #C9A227;--gold-text: #7A4B00;--blue: #1D4F91;--orange: #9A3F00;--ink: #1B1F1D;--muted: #56605B;--line: #DCE2DD;--bg: #F6F8F5;--card: #FFFFFF;--radius: 10px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:"Source Sans 3",Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;font-variant-numeric:tabular-nums}a{color:var(--green-700)}a:hover{color:var(--green-900)}h1,h2{line-height:1.2}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.muted{color:var(--muted)}.small{font-size:13px}.center{display:grid;place-items:center;min-height:60vh}.error{color:var(--orange)}.btn{min-height:40px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{border-color:var(--green-700)}.btn.primary{background:var(--green-900);border-color:var(--green-900);color:#fff;font-weight:600}.btn.primary:hover{background:var(--green-700)}.btn.ghost{background:transparent}.btn.wide{width:100%;min-height:48px}.btn:disabled{opacity:.6;cursor:wait}select,input{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--card);color:var(--ink)}.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.field input{width:100%}:focus-visible{outline:3px solid var(--lime);outline-offset:2px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--green-900)}.mainnav{display:flex;gap:4px;flex:1}.mainnav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600}.mainnav a.active{background:#e8f0e3;color:var(--green-900)}.user{display:flex;align-items:center;gap:10px}.content{max-width:1200px;margin:0 auto;padding:20px}.page-title{font-size:26px;margin:4px 0 8px;color:var(--green-900)}.section-title{font-size:19px;margin:28px 0 10px;color:var(--green-900)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.pad{padding:16px 18px}.card h2{font-size:17px;margin:0 0 8px;color:var(--green-900)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:12px 0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-700)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segmented button{min-height:40px;padding:0 14px;border:0;background:var(--card);font:inherit;cursor:pointer}.segmented button.on{background:var(--green-900);color:#fff}.list{list-style:none;margin:0;padding:0}.list li+li{border-top:1px solid var(--line)}.row-link{display:flex;gap:14px;align-items:center;padding:12px 16px;color:var(--ink);text-decoration:none;min-height:48px}a.row-link:hover{background:#f1f5ee}.grow{flex:1;min-width:0}.plain{margin:0;padding-left:18px}.struck .grow{text-decoration:line-through;color:var(--muted)}.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(420px,100%);padding:32px 28px;text-align:center}.auth-card h1{color:var(--green-900);margin:12px 0 6px}.auth-card .field{text-align:left}.daygrid{display:grid;overflow:hidden}.gutter{padding-top:41px;border-right:1px solid var(--line)}.hour-label{font-size:12px;color:var(--muted);text-align:right;padding-right:6px;transform:translateY(-8px)}.staffcol+.staffcol{border-left:1px solid var(--line)}.staffhead{height:41px;display:flex;align-items:center;justify-content:center;font-weight:600;border-bottom:1px solid var(--line);background:#fafbf9}.lane{position:relative}.hour-line{position:absolute;left:0;right:0;border-top:1px dashed #EEF1EE}.appt{position:absolute;left:4px;right:4px;overflow:hidden;border-radius:6px;background:#eef4ea;border-left:4px solid var(--green-700);padding:3px 8px;font-size:13px;line-height:1.3;color:var(--ink);text-decoration:none;display:flex;flex-direction:column}a.appt:hover{background:#e2ecdc}.appt-time{font-weight:600}.appt.compact{justify-content:center;padding-top:0;padding-bottom:0}.appt-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appt-type{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda{display:grid;gap:12px}.agenda-day{padding:14px 16px}.agenda-day ul{list-style:none;margin:0;padding:0}.agenda-day li{display:flex;gap:10px;align-items:center;padding:6px 0;border-top:1px solid #EEF1EE}.agenda-day li:first-child{border-top:0}.time{width:96px;flex:none;font-weight:600}.dot{width:8px;height:8px;border-radius:50%;flex:none}.summary{margin:16px 0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chip{border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:14px;background:#fff}.lab-comment{margin:12px 0 0}.legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:var(--muted);margin:8px 0}.legend span{display:inline-flex;align-items:center;gap:6px}.lg{display:inline-block;width:26px;height:10px;border-radius:2px}.lg.lab{background:#dce1de}.lg.opt{background:var(--lime)}.lg.val{width:3px;height:16px;background:var(--ink)}.result{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(120px,.9fr) minmax(180px,1.6fr) 104px;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid #EEF1EE}.result:first-child{border-top:0}.r-name,.r-value{display:flex;flex-direction:column}.value{font-size:18px;font-weight:700}.zone{font-size:13px;font-weight:700}.labflag{color:var(--muted)}.r-trend{color:var(--green-700)}.r-note{grid-column:1 / -1;white-space:pre-line;background:#fafaf7;border-radius:6px;padding:6px 10px}.rangebar{position:relative;height:14px;background:#f1f3f1;border-radius:3px;margin-bottom:4px}.rb-lab{position:absolute;top:0;bottom:0;background:#dce1de}.rb-opt{position:absolute;top:4px;height:6px;background:var(--lime);border-radius:2px}.rb-val{position:absolute;top:-3px;width:3px;height:20px;margin-left:-1px;background:var(--ink);border-radius:1px}.z-ok{color:var(--green-700)}.z-sub{color:var(--gold-text)}.z-low,.z-low2{color:var(--blue)}.z-high,.z-high2{color:var(--orange)}.chip.z-sub{border-color:var(--gold)}.chip.z-low,.chip.z-low2{border-color:#8fb0da}.chip.z-high,.chip.z-high2{border-color:#e0a070}@media(max-width:760px){.content{padding:14px}.topbar{padding:8px 12px;gap:8px}.brand span,.hide-sm{display:none}.grid2{grid-template-columns:minmax(0,1fr)}.result{grid-template-columns:minmax(0,1fr) auto}.r-range,.r-trend{grid-column:1 / -1}.page-title{font-size:22px}}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.content{max-width:none;padding:0}.card{border-color:#ccc;break-inside:avoid}.result{break-inside:avoid}}button.appt{border:0;border-left:4px solid var(--green-700);text-align:left;font:inherit;font-size:13px;cursor:pointer}button.appt:hover{background:#e2ecdc}.lane{cursor:copy}.agenda-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.agenda-head h2{margin:0 0 6px}.agenda-item{display:flex;gap:10px;align-items:center;width:100%;padding:6px 0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px}.agenda-item:hover{background:#f1f5ee}.agenda-day li{padding:0}.btn.small{min-height:32px;padding:4px 10px;font-size:14px}.btn.danger{color:var(--orange);border-color:#e0a070}.dialog{border:0;border-radius:14px;padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 24px);box-shadow:0 20px 60px #00000040}.dialog::backdrop{background:#141e1973}.dialog-body{padding:18px 20px 20px}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.dialog-head h2{margin:0;font-size:20px;color:var(--green-900)}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.field select,.field textarea{width:100%}textarea{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.field>span,.field>label{font-size:14px;font-weight:600;color:var(--muted)}.picked{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 0 0 10px;border:1px solid var(--line);border-radius:8px}.picker{position:relative}.picker-list{position:absolute;z-index:5;top:100%;left:0;right:0;list-style:none;margin:4px 0 0;padding:4px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:260px;overflow:auto}.picker-list button{width:100%;text-align:left;padding:8px 10px;border:0;background:none;font:inherit;cursor:pointer;border-radius:6px;min-height:40px}.picker-list button:hover{background:#f1f5ee}.scope{border:1px solid var(--line);border-radius:8px;margin:12px 0 0;padding:8px 12px;display:grid;gap:6px}.scope legend{font-size:14px;font-weight:600;color:var(--muted);padding:0 4px}.scope label{display:flex;align-items:center;gap:8px;min-height:32px}.warn{margin-top:12px;padding:10px 12px;border:1px solid var(--gold);background:#fbf6e6;border-radius:8px}.warn ul{margin:6px 0 10px;padding-left:18px}@media(max-width:760px){.form-grid{grid-template-columns:minmax(0,1fr)}}.content:has(.cal){max-width:none}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.cal-title{margin:0;font-size:22px}.cal-body{display:flex;gap:16px;align-items:flex-start}.cal-side{flex:none;width:200px;display:grid;gap:14px;position:sticky;top:76px}.cal-main{flex:1;min-width:0}.mm-title{font-weight:700;color:var(--green-900);text-align:center;margin-bottom:4px;text-transform:capitalize}.mm table{width:100%;border-collapse:collapse;font-size:13px;text-align:center}.mm th{font-weight:600;color:var(--muted);padding:2px 0}.mm td{padding:1px}.mm button,.mm span{display:block;width:100%;min-height:24px;line-height:24px;border:0;border-radius:4px;background:none;font:inherit;color:var(--ink);cursor:pointer;padding:0}.mm span.out{color:#b4bab6;cursor:default}.mm button:hover{background:#e8f0e3}.mm .we{color:var(--orange)}.mm .range{background:#e8f0e3}.mm .today{outline:2px solid var(--green-700);outline-offset:-2px;font-weight:700}.mm .sel{background:var(--green-900);color:#fff}.tg{overflow:hidden}.tg-head{display:grid;border-bottom:1px solid var(--line);background:#fafbf9}.tg-colhead{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:4px 6px;font-weight:600;text-transform:capitalize;border-left:1px solid var(--line)}.tg-colhead.today{background:#e8f0e3;color:var(--green-900)}.tg-daynum{font-size:13px;color:var(--muted);font-weight:700}.tg-colhead.today .tg-daynum{color:var(--green-900)}.tg-scroll{max-height:calc(100vh - 210px);overflow-y:auto}.tg-body{display:grid}.tg-gutter{border-right:1px solid var(--line)}.tg-hour{position:relative}.tg-h{position:absolute;right:22px;top:-2px;font-size:20px;font-weight:300;color:var(--ink)}.tg-q{position:absolute;right:4px;font-size:11px;color:var(--muted)}.tg-hour:after{content:"00";position:absolute;right:4px;top:0;font-size:11px;color:var(--muted)}.tg-col{position:relative;border-left:1px solid var(--line);cursor:copy}.tg-line{position:absolute;left:0;right:0;border-top:1px solid #F1F3F1}.tg-line.hour{border-top-color:#dce2dd}.tg-now{position:absolute;left:0;right:0;border-top:2px solid var(--orange);z-index:3}.tg-now:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--orange)}.tg .appt{position:absolute;z-index:2;overflow:hidden;display:flex;flex-direction:column;gap:1px;padding:3px 6px;border:1px solid rgba(0,0,0,.06);border-left:4px solid var(--green-700);border-radius:5px;font:inherit;font-size:12.5px;line-height:1.3;text-align:left;color:var(--ink);cursor:pointer}.tg .appt:hover{filter:brightness(.96);z-index:4;box-shadow:0 2px 8px #00000026}.tg .appt.compact{justify-content:center;padding-top:0;padding-bottom:0}.appt-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appt-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:auto}.tag{font-size:11px;padding:0 6px;border-radius:999px;background:#fffc;border:1px solid var(--line)}@media(max-width:760px){.cal-title{font-size:18px;width:100%}.tg-scroll{max-height:none}.tg-h{font-size:16px}}@media(max-width:760px){.cal-side{display:none}.cal-body{display:block}}a.tel{display:inline-flex;align-items:center;gap:6px;min-height:32px;font-weight:600;text-decoration:none}a.tel:before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat}.dlg-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:4px 0 8px;font-size:14px}.agenda-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #EEF1EE}.agenda-day li.agenda-row:first-child{border-top:0}.agenda-row .agenda-item{flex:1;min-width:240px}.agenda-row a.tel{font-size:14px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14.5px}table.data th{text-align:left;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbf9;position:sticky;top:0}table.data td{padding:9px 12px;border-top:1px solid #EEF1EE;white-space:nowrap}table.data .num{text-align:right}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:#f1f5ee}table.data tr.sub td{background:#fafbf9;white-space:normal}.linkish{border:0;background:none;font:inherit;color:var(--green-700);cursor:pointer;padding:0;font-weight:600}.badge{display:inline-block;min-width:22px;padding:0 7px;border-radius:999px;font-size:13px;font-weight:700;text-align:center}.warn-badge{background:#f9ece7;color:var(--orange)}.positions{list-style:none;margin:4px 0;padding:0;columns:3 220px;column-gap:24px}.positions li{padding:2px 0;break-inside:avoid}.code{display:inline-block;min-width:56px;font-weight:700;color:var(--green-900)}#labq{min-width:220px}.cat-layout{display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:16px;align-items:start}.cat-list{max-height:calc(100vh - 190px);overflow-y:auto}.cat-item{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 14px;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.cat-item:hover{background:#f1f5ee}.cat-item.on{background:#e8f0e3;box-shadow:inset 3px 0 0 var(--green-900)}.ok-badge{background:#e5f4e4;color:var(--green-700)}.cat-title{margin:0 0 2px;font-size:20px}.range-grid{display:grid;gap:10px;margin:14px 0}.range-row{display:grid;grid-template-columns:minmax(140px,1fr) auto minmax(80px,120px) auto minmax(80px,120px) minmax(50px,auto);gap:8px;align-items:center}.range-row input{width:100%;text-align:right}.zonebar-wrap{margin:12px 0}.zonebar{position:relative;height:22px;border-radius:5px;background:#f1f3f1;overflow:hidden}.zb{position:absolute;top:0;bottom:0}.z-crit{background:#c4672e}.z-out{background:#f0c9a8}.z-subz{background:#e9d9a0}.z-optz{background:var(--lime)}.zonebar-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;color:var(--muted)}.zonebar-legend span{display:inline-flex;align-items:center;gap:6px}.zb-i{display:inline-block;width:14px;height:10px;border-radius:2px}.derived{margin-top:8px}.derived summary{cursor:pointer;font-weight:600;color:var(--green-900);min-height:32px}.small-table{width:auto;font-size:13px}.small-table th,.small-table td{padding:4px 10px}.ok{color:var(--green-700);font-weight:600}@media(max-width:760px){.cat-layout{grid-template-columns:minmax(0,1fr)}.cat-list{max-height:260px}.range-row{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto}.range-row>div:first-child{grid-column:1 / -1}}.lab-norms{margin:.75rem 0}.lab-norms tr.on th,.lab-norms tr.on td{background:color-mix(in srgb,var(--accent, #2b6cb0) 10%,transparent)}.group-edit input{width:100%;min-width:4.5rem}.group-edit tr.on th,.group-edit tr.on td{background:color-mix(in srgb,#2b6cb0 10%,transparent)}.import-thumbs{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.import-thumbs figure{margin:0;width:140px}.import-thumbs img{width:100%;border:1px solid var(--line, #ddd);border-radius:4px}.import-thumbs figcaption{font-size:.8rem}.redact{margin:1rem 0}.redact-bar{display:flex;gap:.5rem;align-items:center;margin-bottom:.25rem}.redact-canvas{width:100%;max-width:900px;border:1px solid var(--line, #ddd);touch-action:none;cursor:crosshair;display:block}.import-table input{width:100%;min-width:4rem}.import-table .num-in{min-width:5rem}.import-table .unit-in{min-width:4.5rem}.import-table .flag-in{min-width:2.5rem;width:3rem}.import-table select{max-width:16rem}.import-table tr.off td{opacity:.45}.import-table tr.bad td{background:color-mix(in srgb,#c53030 8%,transparent)}.import-table tr.unsure td{background:color-mix(in srgb,#d69e2e 10%,transparent)}.picker-list{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid var(--line, #ddd);border-radius:4px;max-height:16rem;overflow:auto}.picker-list button{width:100%;text-align:left;background:none;border:0;padding:.4rem .6rem;cursor:pointer}.picker-list button:hover{background:color-mix(in srgb,#2b6cb0 8%,transparent)}button.appt:hover{filter:brightness(.96)}.color-field{grid-column:1 / -1}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.swatch{width:28px;height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.2);cursor:pointer;padding:0;font:inherit}.swatch.none{background:#fff;color:var(--muted)}.swatch.on{outline:3px solid var(--green-700);outline-offset:1px}@media print{.rangebar,.rb-lab,.rb-opt,.rb-val,.chip,.lg,.zone,.value{-webkit-print-color-adjust:exact;print-color-adjust:exact}.section-title{break-after:avoid;page-break-after:avoid}.lab-section{break-before:auto}}.interpretation h2{margin-top:0}.interp-view{white-space:pre-wrap;line-height:1.55;margin:0 0 8px}.interp-text{width:100%;line-height:1.5}@media print{.interpretation{break-inside:avoid}}
