:root{color:#17352c;background:#f2f4ed;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}header{align-items:center;gap:18px;max-width:1180px;margin:auto;padding:28px 24px;display:flex}header>b{color:#f0f5d7;background:#153f31;border-radius:12px;padding:13px;font-size:27px}header>b span{color:#b6d66a}h1{letter-spacing:-1px;margin:7px 0;font-size:27px}h2{letter-spacing:-.5px;font-size:22px}small,.label{letter-spacing:1.8px;color:#697b60;font-size:10px}.badge{border:1px solid #d1dac8;border-radius:20px;margin-left:auto;padding:9px;font-size:10px}main{grid-template-columns:minmax(0,1fr) 300px;gap:28px;max-width:1180px;margin:auto;padding:0 24px;display:grid}.camera{aspect-ratio:4/3;color:#eff4d9;background:#142b27;border-radius:18px;position:relative;overflow:hidden}.camera video{object-fit:contain;width:100%;height:100%}.overlay{letter-spacing:1px;justify-content:space-between;font-size:10px;display:flex;position:absolute;top:18px;left:18px;right:18px}.overlay span{background:#10211ac9;border-radius:6px;padding:9px}#welcome{text-align:center;background:#17352d;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:absolute;inset:0}#welcome>div{color:#b5cb89;font-size:50px}#welcome p{color:#c6d4b9;max-width:340px;font-size:13px;line-height:1.7}#welcome h2{margin:12px 0}.fine{color:#6f8068;line-height:1.7;font-size:11px!important}button{font:inherit;color:#2d4d3b;cursor:pointer;background:#fff;border:1px solid #cbd8c0;border-radius:9px;padding:12px 16px;font-size:13px;font-weight:600}.primary{color:#193c25;background:#bdda85;border-color:#bdda85}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #a1b26b}.controls{gap:9px;margin:16px 0;display:flex}.metrics{background:#fff;border:1px solid #d9e1d0;border-radius:12px;grid-template-columns:repeat(3,1fr);margin-top:15px;display:grid}.metrics>div{padding:16px}.metrics strong{margin-top:8px;font-size:14px;display:block}.metrics small{letter-spacing:.6px;font-size:9px}#coach{background:#122b24e6;margin:0;padding:15px 19px;font-size:12px;line-height:1.5;position:absolute;bottom:0;left:0;right:0}aside{background:#fff;border:1px solid #dce3d3;border-radius:16px;align-self:start;padding:24px}aside h2{margin:12px 0 24px;line-height:1.35}label{font-size:12px;line-height:1.5}input:not([type=checkbox]){width:100%;font:inherit;background:#f6f8f1;border:1px solid #ccd8bf;border-radius:8px;margin:8px 0 20px;padding:11px;font-size:12px;display:block}.checklist label{color:#506744;align-items:start;gap:9px;margin:16px 0;display:flex}.checklist input{accent-color:#426b31;margin-top:4px}.tip{background:#f3f6ed;border-radius:10px;margin-top:21px;padding:15px;font-size:12px}.tip p{color:#78866c;margin-bottom:0;line-height:1.8}.limits{color:#7d866e;font-size:11px;line-height:1.8}#error{color:#9d3a2f;font-size:12px;line-height:1.7}.sessions{background:#fff;border:1px solid #dce3d3;border-radius:15px;grid-column:1/-1;margin:10px 0 25px;padding:24px}.sessions h2{margin:8px 0}.sessions article{border-top:1px solid #e4e9dd;justify-content:space-between;align-items:center;gap:10px;padding:16px 0;display:flex}.sessions article strong{overflow-wrap:anywhere;font-size:14px}.sessions article p,.empty{color:#7c886e;font-size:11px}footer{text-align:center;color:#819073;padding:20px;font-size:10px}[hidden]{display:none!important}@media (width<=760px){header{gap:10px;padding:18px 16px}h1{font-size:22px}.badge{display:none}main{flex-direction:column;gap:16px;padding:0 16px;display:flex}.camera{aspect-ratio:3/4;max-height:65vh}.metrics>div{padding:12px 9px}.controls{flex-wrap:wrap}aside{width:100%}.checklist{grid-template-columns:1fr 1fr;gap:9px;display:grid}.checklist label{margin:5px 0}.sessions{width:100%;padding:18px}.sessions article{flex-wrap:wrap}.fine{font-size:10px!important}#welcome{padding:22px}#welcome p{font-size:12px}header small{font-size:8px}}:root .camera-picker{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.camera-picker select{color:#17352c;min-width:0;max-width:100%;font:inherit;background:#fff;border:1px solid #cbd8c0;border-radius:9px;flex:180px;padding:12px;font-size:12px}.research-workspace{background:#e7ede4;border:1px solid #cedbc9;border-radius:20px;grid-column:1/-1;min-width:0;padding:25px}.research-heading,.card-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.research-heading h2{max-width:560px;margin:8px 0 18px;font-size:28px}.research-badge{letter-spacing:1px;color:#d2edba;background:#214f42;border-radius:30px;padding:10px 14px;font-size:9px}.research-toolbar,.semantic-tools,.measure-tools{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.research-toolbar input{width:80px}.research-workspace select{color:#244b3a;background:#fff;border:1px solid #c2d1bb;border-radius:8px;max-width:100%;padding:10px}.research-workspace input:not([type=checkbox]){max-width:100%;margin:5px 0 0}.file-button{cursor:pointer;background:#fff;border:1px solid #c7d5c0;border-radius:9px;padding:11px 14px;font-weight:600}.file-button input{width:180px;background:0 0!important;border:0!important;padding:5px 0!important;font-size:10px!important;display:block!important}.research-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0;display:grid}.research-stats>div{color:#e2f3d3;background:#173d31;border-radius:12px;padding:18px}.research-stats small{color:#a2c3ad;letter-spacing:.8px;font-size:9px;display:block}.research-stats b{font-variant-numeric:tabular-nums;margin-top:8px;font-size:20px;display:block}.research-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.research-card{background:#fbfcf8;border:1px solid #d7e2d0;border-radius:14px;min-width:0;padding:18px}.research-card h3{margin:5px 0 14px;font-size:16px}.research-card canvas{touch-action:manipulation;cursor:crosshair;background:#142d27;border-radius:10px;width:100%;height:auto;margin:14px 0;display:block}.research-card p{font-size:12px;line-height:1.7}.legend{color:#4d715f;flex-wrap:wrap;gap:12px;margin:10px 0;font-size:10px;display:flex}.measure-tools p{flex-basis:100%;font-weight:600}.measure-tools label{flex:180px}.research-card details{border-top:1px solid #d6dfcf;margin-top:18px;padding-top:18px;font-size:12px}.research-card details label{margin:14px 0;display:block}.research-card pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#eaf0e5;border-radius:8px;padding:12px;font-size:11px}.research-card li{margin:15px 0;font-size:12px;line-height:1.6}.export-card{color:#ecf3df;background:#1b4134}.export-card .fine,.export-card .label,.export-card a{color:#b5cbaa}.export-card h3{margin:18px 0;font-size:27px;line-height:1.2}.export-card p{color:#d2dfc8}.observation{border-top:1px solid #dce5d6;padding:10px 0}.observation input{width:100%}.observation small{letter-spacing:0;font-size:10px}.feature-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.camera .overlay,#coach{z-index:2}#slam-status{font-size:12px;line-height:1.6}#evidence-status,#plan-status{color:#53705a;font-size:11px}@media (width<=760px){.research-workspace{padding:15px}.research-grid{grid-template-columns:1fr}.research-stats{grid-template-columns:1fr 1fr}.research-heading h2{font-size:24px}.research-toolbar{align-items:stretch}.research-toolbar>button{flex:140px}.research-card{padding:14px}.research-card canvas{min-height:160px}.research-badge{margin-bottom:15px}.semantic-tools label{flex:120px}}#live-tracking{color:#d4f4ae;max-width:100%;font-size:9px;line-height:1.4;position:absolute;top:43px;left:0}.phone-header,.phone-nav,.phone-dock{display:none}body.phone-layout{--phone-top:calc(58px + env(safe-area-inset-top,0px));--phone-nav:calc(62px + env(safe-area-inset-bottom,0px));--phone-dock:112px;overscroll-behavior-y:none;background:#eff3eb}.phone-layout *{box-sizing:border-box}.phone-layout #app>header,.phone-layout footer{display:none}.phone-layout .phone-header{z-index:20;height:var(--phone-top);padding:calc(8px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 8px max(14px,env(safe-area-inset-left,0px));color:#eff5e5;background:#112e26;border-bottom:1px solid #315045;justify-content:space-between;gap:8px;max-width:none;margin:0;display:flex;position:fixed;inset:0 0 auto}.phone-header>div{align-items:center;gap:10px;display:flex}.phone-brand{color:#16392a;background:#c1db91;border-radius:10px;padding:5px 9px;font-size:23px;font-weight:800}.phone-header strong{font-size:15px}.phone-header small{letter-spacing:1px;color:#acc5b5;margin-top:4px;font-size:8px;display:block}.phone-header button{color:#e9f4dc;background:#24463a;border-color:#466455;min-height:40px;padding:8px 14px}.phone-layout main{padding:calc(var(--phone-top) + 12px) 12px calc(var(--phone-nav) + var(--phone-dock) + 20px);max-width:none;margin:0;display:block}.phone-layout main>[data-phone-panel],.phone-layout .research-grid>[data-phone-panel]{display:none}.phone-layout .research-workspace,.phone-layout .research-grid{display:contents}.phone-layout .research-heading{display:none}.phone-layout[data-phone-view=capture] [data-phone-panel=capture],.phone-layout[data-phone-view=setup] [data-phone-panel=setup],.phone-layout[data-phone-view=map] [data-phone-panel=map],.phone-layout[data-phone-view=mark] [data-phone-panel=mark],.phone-layout[data-phone-view=plan] [data-phone-panel=plan],.phone-layout[data-phone-view=files] [data-phone-panel=files]{display:block}.phone-layout .research-card,.phone-layout aside,.phone-layout .sessions{border-radius:16px;width:100%;min-width:0;margin:0;padding:16px}.phone-layout .card-heading{gap:10px}.phone-layout .research-card h3{margin:4px 0 10px;font-size:18px}.phone-layout button,.phone-layout select,.phone-layout input:not([type=checkbox]){touch-action:manipulation;min-height:44px;font-size:16px}.phone-layout input[type=checkbox]{flex-shrink:0;width:22px;height:22px;margin-top:0}.phone-layout label{font-size:14px}.phone-layout .checklist{display:block}.phone-layout .checklist label{align-items:center;padding:10px 0}.phone-layout .fine{line-height:1.6;font-size:12px!important}.phone-layout .tip p{font-size:13px}.phone-layout .tip{margin-top:14px}.phone-layout[data-phone-view=capture]{background:#112e26}.phone-layout[data-phone-view=capture] main{padding:var(--phone-top) 0 calc(var(--phone-nav) + var(--phone-dock))}.phone-layout .camera{aspect-ratio:auto;width:100%;height:calc(100svh - var(--phone-top) - var(--phone-nav) - var(--phone-dock) - 62px);height:calc(100dvh - var(--phone-top) - var(--phone-nav) - var(--phone-dock) - 62px);background:#0b211c;border-radius:0;min-height:220px;max-height:none}.phone-layout .camera video{object-fit:contain}.phone-layout .camera .overlay{top:12px;left:12px;right:12px}.phone-layout #welcome{background:radial-gradient(at 50% 35%,#28523e,#102b23 75%);padding:60px 24px 45px}.phone-layout #welcome>div{font-size:38px}.phone-layout #welcome h2{max-width:240px;font-size:24px}.phone-layout #welcome p{margin:8px 0;font-size:13px}.phone-layout #welcome button{margin-top:8px;padding:13px 23px}.phone-layout #welcome .fine{font-size:10px!important}.phone-layout #coach{background:#102a23eb;padding:11px 14px;font-size:12px}.phone-layout .metrics{color:#e6f4dd;background:#193b30;border:0;border-radius:0;height:62px;margin:0}.phone-layout .metrics>div{border-right:1px solid #315145;padding:10px 12px}.phone-layout .metrics small{color:#b0c8b7;font-size:8px}.phone-layout .metrics strong{margin-top:5px;font-size:13px}.phone-layout .phone-dock{z-index:30;bottom:var(--phone-nav);padding:8px max(12px,env(safe-area-inset-right,0px)) 10px max(12px,env(safe-area-inset-left,0px));min-height:var(--phone-dock);background:#112e26;border-top:1px solid #355244;display:block;position:fixed;left:0;right:0}.phone-track-controls{gap:8px;display:flex}.phone-track-controls button{color:#def2cd;background:#244638;border-color:#45604f;flex:1;min-height:36px!important;padding:7px 10px!important;font-size:12px!important}.phone-track-controls button:disabled{opacity:.4}.phone-record-controls .controls{gap:8px;margin:7px 0 0;display:flex}.phone-record-controls #record,.phone-record-controls #stop{border-radius:24px;flex:1;min-height:44px;font-size:14px}.phone-record-controls #stop{color:#ffdfb7;background:#324438;border-color:#776147}.phone-recording .phone-record-controls #stop{color:#613510;background:#ffd7b0}.phone-dock #error{color:#ffd4b8;max-height:48px;margin:0 0 6px;font-size:12px;overflow:auto}.phone-dock #error:empty{display:none}.phone-layout .phone-nav{z-index:30;height:var(--phone-nav);padding:3px max(6px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(6px,env(safe-area-inset-left,0px));background:#0b251e;border-top:1px solid #304d3f;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.phone-nav button{color:#a5bfac;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:5px 0;display:flex;font-size:10px!important}.phone-nav button span{font-size:22px;line-height:23px}.phone-nav button[aria-current=page]{color:#d2eea4;background:#264535}.phone-layout .research-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.phone-layout .research-stats>div{padding:12px}.phone-layout .research-stats b{font-size:18px}.phone-layout .research-card canvas{aspect-ratio:auto;min-height:0}.phone-layout .semantic-tools,.phone-layout .measure-tools{gap:10px}.phone-layout .semantic-tools button,.phone-layout .measure-tools button{flex:140px;font-size:13px}.phone-layout .file-button{max-width:100%;font-size:13px}.phone-layout .file-button input{width:100%;min-height:32px;font-size:12px!important}.phone-layout .research-toolbar{border-top:1px solid #d0ddc7;gap:12px;margin-top:20px;padding-top:15px;display:flex}.phone-layout .research-toolbar>*{flex:140px;max-width:100%}.phone-layout .research-toolbar input{width:100%}.phone-layout .export-card{margin-top:24px}.phone-layout .sessions article>div{min-width:0}.phone-layout #plan-status,.phone-layout #evidence-status{font-size:12px}.phone-layout #settings{overflow-wrap:anywhere}.phone-layout #off{width:100%;margin-top:12px}.phone-layout .camera-picker{margin-top:22px}.phone-layout .camera-picker select{flex-basis:100%;width:100%}@media (height<=500px){.phone-layout{--phone-top:48px;--phone-nav:52px;--phone-dock:60px}.phone-layout .phone-header{padding-top:5px;padding-bottom:5px}.phone-layout .phone-dock{align-items:center;gap:10px;display:flex}.phone-layout .phone-track-controls,.phone-layout .phone-record-controls{flex:1}.phone-layout .phone-record-controls .controls{margin:0}.phone-layout .phone-dock #phone-alert:empty{display:none}.phone-layout .camera{min-height:130px}.phone-layout #welcome{padding:30px 20px}.phone-layout #welcome>div,.phone-layout #welcome p{display:none}.phone-layout #welcome h2{margin:0;font-size:18px}.phone-layout #welcome button{min-height:36px;margin-top:8px;padding:6px 18px}.phone-layout .phone-nav button{flex-direction:row;gap:8px}}@media (prefers-reduced-motion:reduce){.phone-layout *{scroll-behavior:auto!important}}@media (height>=501px) and (height<=700px){.phone-layout #welcome>div,.phone-layout #welcome .fine{display:none}.phone-layout #welcome{padding:75px 16px 50px}.phone-layout #welcome h2{max-width:100%;margin:0;font-size:20px}.phone-layout #welcome p{margin:6px 0;font-size:12px;line-height:1.5}.phone-layout #welcome button{margin-top:6px}}
