:root{--green:#40BB6A;--green-d:#2E9E54;--green-l:#E7F6EC;--green-ll:#F1FAF4;--ink:#12211B;--muted:#5C6B63;--faint:#8A978F;--line:#E4EAE6;--bg:#F5F8F6;--card:#FFFFFF;--amber:#C97A1E;--amber-bg:#FBF1E2;--red:#C9492F;--red-bg:#FAE9E4;--good:#2E9E54;--good-bg:#E7F6EC;--shadow:0 1px 2px rgba(18,33,27,.04), 0 8px 24px rgba(18,33,27,.05);--display:"Space Grotesk", system-ui, sans-serif;--body:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--body);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.topbar{position:sticky;top:0;z-index:40;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-in{max-width:1240px;margin:0 auto;padding:12px 22px;display:flex;align-items:center;gap:14px}.brand{display:flex;align-items:center;gap:11px}.brand img{height:34px;width:auto;display:block}.brand-txt strong{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:-.2px;display:block;line-height:1.05}.brand-txt span{font-size:11px;color:var(--muted);letter-spacing:.3px;text-transform:uppercase}.topbar .spacer{flex:1}.actions{display:flex;gap:8px;flex-wrap:wrap}button{font-family:var(--body);font-size:13px;font-weight:600;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 13px;cursor:pointer;transition:.14s;display:inline-flex;align-items:center;gap:6px}button:hover{border-color:var(--green);color:var(--green-d)}button.primary{background:var(--green);border-color:var(--green);color:#fff}button.primary:hover{background:var(--green-d);border-color:var(--green-d);color:#fff}button.ghost{background:transparent}.wrap{max-width:1240px;margin:0 auto;padding:22px;display:grid;grid-template-columns:1fr 332px;gap:22px;align-items:start}.col-form{min-width:0}.rail{position:sticky;top:78px}.hero{background:linear-gradient(135deg,var(--green-ll),#fff 65%);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}.hero h1{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:-.4px;margin:0 0 3px}.hero p{margin:0;color:var(--muted);font-size:12.5px}.grid{display:grid;gap:13px 16px}.patient-grid{grid-template-columns:repeat(4,1fr);margin-top:16px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}input,select{font-family:var(--body);font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%;transition:.12s}input:focus,select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}input::placeholder{color:#b7c1bb}input[readonly]{background:var(--green-ll);color:var(--green-d);font-weight:600;border-style:dashed}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px 20px;margin-bottom:16px;box-shadow:var(--shadow)}.sec-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}.sec-tag{font-family:var(--display);font-weight:700;font-size:13px;color:#fff;background:var(--green);width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.sec-head h2{font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:-.2px;margin:0}.sec-head .sub{font-size:11.5px;color:var(--faint);margin-top:1px}.block{margin-top:16px}.block:first-child{margin-top:0}.block-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:9px;display:flex;align-items:center;gap:8px}.block-title .hint{font-weight:500;color:var(--faint);font-size:11px}table{width:100%;border-collapse:collapse}th{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:600;text-align:left;padding:0 8px 7px;border-bottom:1px solid var(--line)}td{padding:6px 8px;vertical-align:middle}tr:not(:last-child) td{border-bottom:1px solid #F1F4F2}td.lbl{font-weight:500;font-size:13px}td.bench{font-size:11.5px;color:var(--faint)}td input{padding:7px 9px}.num,th.num{text-align:center}.colw{width:96px}.mob-other-name,.mob-other-bench{border:1px dashed var(--line);border-radius:7px;padding:6px 9px;font-size:13px;width:100%}.mob-other-name{font-weight:500}.mob-other-bench{font-size:12px;color:var(--muted)}.mob-other-name:focus,.mob-other-bench:focus{border-style:solid}.out{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;padding:5px 11px;border-radius:8px;background:var(--bg);color:var(--ink);min-width:54px;justify-content:center;border:1px solid var(--line)}.out .u{font-weight:500;color:var(--muted);font-size:11px}.badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:3px 8px;border-radius:6px;white-space:nowrap}.b-good{background:var(--good-bg);color:var(--good)}.b-warn{background:var(--amber-bg);color:var(--amber)}.b-bad{background:var(--red-bg);color:var(--red)}.b-neutral{background:#eef2f0;color:var(--muted)}.resrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}.resrow .k{font-size:12px;font-weight:600;color:var(--muted);min-width:120px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;border:1px solid var(--line);border-radius:9px;padding:7px 11px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:.12s}.chip input{position:absolute;opacity:0;width:0;height:0}.chip .box{width:15px;height:15px;border:1.5px solid #C4CEC8;border-radius:5px;flex-shrink:0;transition:.12s;position:relative}.chip:hover{border-color:var(--green)}.chip input:checked~.box{background:var(--green);border-color:var(--green)}.chip input:checked~.box:after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.chip input:checked~span{color:var(--green-d);font-weight:600}.other-input{flex:1 1 200px;min-width:160px;font-size:13px;border:1px dashed var(--line);border-radius:9px;padding:7px 11px}.other-input:focus{border-style:solid}.chip-other:has(input:checked)~.other-input{border-color:var(--green);background:var(--green-ll)}.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.chip-col h4{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 8px}.chip-col .chips{flex-direction:column;align-items:stretch}.toggle{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px}.toggle button{border:none;background:transparent;padding:6px 12px;font-size:12px;border-radius:6px;color:var(--muted)}.toggle button.on{background:#fff;color:var(--green-d);box-shadow:0 1px 2px #0000000f}.toggle button:hover{color:var(--green-d)}.rail-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.rail-card .top{background:var(--ink);color:#fff;padding:14px 16px}.rail-card .top h3{font-family:var(--display);font-weight:600;font-size:14px;margin:0;display:flex;align-items:center;gap:8px}.rail-card .top p{margin:2px 0 0;font-size:11px;color:#9db0a6}.rail-body{padding:6px 16px 14px}.stat{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #F1F4F2;gap:10px}.stat:last-child{border-bottom:none}.stat .lab{font-size:12px;color:var(--muted);font-weight:500}.stat .val{font-family:var(--display);font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}.stat .val small{font-size:11px;font-weight:600;color:var(--muted)}.flags{padding:0 16px 16px}.flags h4{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:6px 0 9px}.flag{display:flex;gap:9px;align-items:flex-start;font-size:12px;padding:8px 10px;border-radius:9px;margin-bottom:7px;line-height:1.35}.flag.warn{background:var(--amber-bg);color:#8a560f}.flag.bad{background:var(--red-bg);color:#8e2e1b}.flag.ok{background:var(--good-bg);color:#1e6b39}.flag .dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex-shrink:0}.flag.warn .dot{background:var(--amber)}.flag.bad .dot{background:var(--red)}.flag.ok .dot{background:var(--good)}.empty{font-size:12px;color:var(--faint);padding:10px 0;text-align:center}.records{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 16px}.records h4{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 10px}.rec-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #F1F4F2;font-size:12.5px}.rec-item:last-child{border-bottom:none}.rec-item .nm{font-weight:600}.rec-item .meta{color:var(--faint);font-size:11px}.rec-item button{padding:4px 8px;font-size:11px}.mini{font-size:11px;color:var(--faint);margin-top:8px}.note{font-size:11px;color:var(--faint);margin-top:10px;padding:9px 11px;background:var(--green-ll);border-radius:9px;line-height:1.4}.sign-grid{grid-template-columns:repeat(3,1fr)}.sign-line{border-bottom:1.5px solid var(--ink);height:30px;margin-bottom:4px}.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px}.tscroll::-webkit-scrollbar{height:6px}.tscroll::-webkit-scrollbar-thumb{background:#d5ded8;border-radius:6px}@media (max-width:980px){.wrap{grid-template-columns:1fr;gap:16px;padding:18px}.rail{position:static}.rail-card .top{border-radius:14px 14px 0 0}.patient-grid{grid-template-columns:repeat(3,1fr)}.chip-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){body{font-size:13.5px}.topbar-in{padding:10px 16px;gap:10px}.brand img{height:30px}.actions{gap:6px}button{padding:8px 11px;font-size:12.5px}.wrap{padding:14px;gap:14px}.hero{padding:16px}.hero h1{font-size:18px}.card{padding:15px 15px 17px;border-radius:14px}.patient-grid{grid-template-columns:repeat(2,1fr)}.chip-grid,.sign-grid{grid-template-columns:1fr}.tscroll table{min-width:480px}.colw{width:78px}.resrow .k{min-width:auto}}@media (max-width:460px){.topbar-in{flex-wrap:wrap}.brand-txt span{display:none}.actions{width:100%;justify-content:stretch}.actions button{flex:1;justify-content:center}.patient-grid{grid-template-columns:1fr 1fr}.field label{font-size:10.5px}.sec-head h2{font-size:15px}.out{min-width:46px;padding:5px 9px}}@media (max-width:980px){input,select,textarea{font-size:16px}td input{padding:8px 7px}}.is-hidden{display:none}.info-wrap{max-width:880px;margin:0 auto;padding:30px 22px 70px}.info-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:30px 30px 32px}.info-head h1{font-family:var(--display);font-weight:700;font-size:23px;letter-spacing:-.4px;margin:0}.info-head p{margin:5px 0 24px;color:var(--muted);font-size:13px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px 18px}.info-grid .field{grid-column:auto}.info-grid .span2{grid-column:span 1}.info-grid .span3{grid-column:1/-1}.rq{color:var(--red);font-weight:700;margin-left:1px}.field.invalid input,.field.invalid select{border-color:var(--red);background:#fceeea}.field.invalid input:focus,.field.invalid select:focus{box-shadow:0 0 0 3px var(--red-bg)}.field.invalid label{color:var(--red)}.info-error{display:flex;gap:9px;align-items:flex-start;background:var(--red-bg);color:#8e2e1b;border-radius:11px;padding:12px 14px;font-size:13px;margin-top:20px;line-height:1.4;font-weight:500}.start-btn{margin-top:22px;width:100%;justify-content:center;font-size:15px;padding:14px 22px}.recap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,var(--green-ll),#fff 62%);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:16px;box-shadow:var(--shadow)}.recap-main{min-width:0}.recap-name{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.2px}.recap-meta{color:var(--muted);font-size:12.5px;margin-left:10px}.recap-edit{flex-shrink:0}.print-patient{display:none}@media (max-width:520px){.info-wrap{padding:18px 14px 50px}.info-card{padding:20px 18px}.recap{flex-direction:column;align-items:flex-start;gap:10px}.recap-edit{width:100%;justify-content:center}}@media print{@page{margin:14mm}body{background:#fff;font-size:11px}.topbar{position:static;border:none;background:#fff}.actions,.records,.toggle .x-skip{display:none!important}.wrap{display:block;max-width:none;padding:0}.rail{position:static;margin-top:8px}.card,.hero,.rail-card,.records{box-shadow:none;break-inside:avoid;border-color:#d8e0db}input,select{border-color:#d8e0db}button,.toggle{display:none}.tscroll{overflow:visible!important}.tscroll table{min-width:0!important}#view-info,#view-assess,.is-hidden{display:block!important}.info-wrap{max-width:none;padding:0;margin:0}.info-card{box-shadow:none;border:none;padding:0;margin-bottom:10px}.info-head p,.start-btn,.info-error,.recap,.print-patient{display:none!important}.rail-card .top{background:var(--ink)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sec-tag,.b-good,.b-warn,.b-bad,.flag,.out{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sig-wrap{border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;position:relative}#sigCanvas{display:block;width:100%;height:90px;cursor:crosshair;touch-action:none}.sig-actions{display:flex;justify-content:flex-end;padding:4px 8px;border-top:1px solid var(--line);background:var(--bg)}.sig-actions button{font-size:11px;padding:3px 10px}.sig-wrap.has-sig{border-color:var(--green)}@media print{.sig-actions{display:none!important}#sigCanvas{border:none}}
