@font-face{font-family:Inter;src:url('/assets/inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111;background:#fff;-webkit-font-smoothing:antialiased;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #111;outline-offset:4px}button:disabled{opacity:.5;cursor:wait}svg{width:20px;height:20px;flex-shrink:0}.viewer{height:100dvh;min-height:360px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}.viewer-header{display:flex;align-items:center;gap:12px;height:calc(68px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(22px,env(safe-area-inset-right,0px)) 0 max(22px,env(safe-area-inset-left,0px))}.viewer-header h1{font-size:30px;font-weight:750;letter-spacing:-2px;line-height:1;margin:0 auto 0 0}.viewer-header h1 span{color:#999}.mode{font-size:11px;color:#777;white-space:nowrap}.icon-button{border:0;background:#f3f3f3;width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.icon-button svg{width:16px;height:16px}.camera-view{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#e9e8e4}.photo-frame{position:relative;aspect-ratio:1458/1960;height:100%;width:auto;max-width:100%;max-height:100%;flex-shrink:0;container-type:inline-size}.photo-frame img{display:block;width:100%;height:100%;object-fit:contain}.annotations{position:absolute;inset:0;pointer-events:none}.note{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:5px;background:#171717;color:#fff;border-radius:6px;padding:6px 7px;font-size:clamp(8px,2.3cqw,12px);font-weight:550;line-height:1.2;white-space:nowrap;box-shadow:0 2px 9px #0002;border:1px solid #ffffff3d;transform:translateY(-50%)}.note:after{content:"";position:absolute;top:100%;left:10px;width:1px;height:9px;background:#171717}.note svg{width:11px;height:11px;stroke-width:2}.note strong{border-left:1px solid #ffffff40;padding-left:6px;margin-left:1px;font-weight:650;font-variant-numeric:tabular-nums}.note.good{color:#111;background:#fff;border-color:#ddd}.note.good strong{border-color:#ddd}.note.good:after{background:#777}.output-note{font-size:clamp(8px,2.3cqw,12px)}.total{position:absolute;left:var(--x);top:var(--y);background:#171717;color:white;border-radius:8px;padding:7px 11px;transform:translate(-50%,-50%);border:1px solid #ffffff4d;box-shadow:0 2px 9px #0002}.total strong{font-size:clamp(21px,6cqw,32px);font-weight:650;letter-spacing:-1px;line-height:1.1}.total span{font-size:.58em;color:#bbb;font-weight:450;letter-spacing:0;margin-left:2px}.camera-controls{padding:9px max(21px,env(safe-area-inset-right,0px)) calc(15px + env(safe-area-inset-bottom,0px)) max(21px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;align-items:center;gap:9px}.status{margin:0;font-size:11px;color:#777;line-height:1.4;min-height:15px;text-align:center}.camera-button{display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;background:#171717;color:#fff;min-height:52px;width:100%;max-width:400px;padding:14px 18px;font-size:14px;font-weight:600;transition:background .15s}.camera-button:hover:not(:disabled){background:#303030}.camera-button:active:not(:disabled){transform:translateY(1px)}.camera-view video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#171717}.paused{color:#777}.paused svg{width:36px;height:36px}.viewer:has(video) .camera-view{background:#171717}
@media(max-aspect-ratio:0.65){.photo-frame{width:100%;height:auto;aspect-ratio:1458/1960}}
@media(min-width:701px){.viewer-header{height:76px;padding-right:32px;padding-left:32px}.viewer-header h1{font-size:33px}.camera-controls{padding-top:12px;padding-bottom:20px}.note{border-radius:8px;padding:8px 10px;gap:6px}.note svg{width:14px;height:14px}.total{padding:10px 13px}}
@media(max-height:500px) and (orientation:landscape){.viewer-header{height:48px}.camera-controls{position:absolute;bottom:14px;right:20px;max-width:210px;padding:0;z-index:4}.status{display:none}.camera-button{font-size:12px;min-height:44px}.camera-view{margin-bottom:0}.viewer{grid-template-rows:48px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.viewer-header h1{font-size:24px;letter-spacing:-1.1px}.mode{font-size:10px}@media(min-width:701px){.viewer-header h1{font-size:28px}}@media(max-width:370px){.viewer-header{padding-left:16px;padding-right:16px;gap:8px}.viewer-header h1{font-size:21px}.mode{font-size:9px}}

.capture-actions{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;max-width:400px}.capture-actions .camera-button{flex:1;min-width:0}.shutter{width:54px;height:54px;flex-shrink:0;border:2px solid #171717;background:white;border-radius:50%;padding:4px;display:grid;place-items:center}.shutter>span{display:block;background:#171717;border-radius:50%;width:100%;height:100%}.shutter:hover{background:#eee}.shutter:active{transform:scale(.96)}.captured-photo{width:100%;height:100%;object-fit:contain;display:block}.viewer:has(.captured-photo) .camera-view{background:#171717}
.header-tools{display:flex;gap:6px}.header-tools .icon-button{width:34px;height:34px}.header-tools svg{width:16px;height:16px}.media-frame{position:relative;flex-shrink:0;container-type:inline-size}.media-frame video{position:absolute;inset:0;object-fit:contain;width:100%;height:100%}.media-frame .captured-photo{position:absolute;inset:0}.media-frame .note{font-size:clamp(8px,2.4cqw,12px)}.idle-camera{color:#999}.idle-camera svg{width:40px;height:40px}.needs-review{position:absolute;bottom:8%;left:50%;transform:translateX(-50%);background:#171717;color:#fff;border-radius:9px;padding:12px 18px;font-size:14px;white-space:nowrap}.login{min-height:100dvh;padding:32px 24px;max-width:440px;margin:auto;display:flex;flex-direction:column;justify-content:center}.login>h1{font-size:30px;letter-spacing:-1.2px;margin:0 0 65px;font-weight:750}.login h2{font-size:26px;letter-spacing:-.8px;margin:0 0 12px}.login p{font-size:13px;line-height:1.7;color:#777;margin:0 0 26px;overflow-wrap:anywhere}.login label,.sheet-body form>label{display:block;margin-bottom:21px}.login label>span,.sheet-body form>label>span{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.login input,.sheet-body input{font:inherit;font-size:16px;border:1px solid transparent;background:#f3f3f3;border-radius:10px;padding:15px;width:100%;min-height:50px;color:#111}.login input:focus,.sheet-body input:focus{outline:1px solid #111;background:white}.login .login-error{margin:16px 0 8px;color:#333;font-size:12px;min-height:20px}.plain-button{background:transparent;border:0;padding:12px 0;font-size:12px;color:#666;text-align:left}.login .camera-button{max-width:none}dialog{border:0;border-radius:20px;padding:0;max-width:520px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);box-shadow:0 18px 100px #0002;color:#111;background:#fff}dialog::backdrop{background:#0006;backdrop-filter:blur(3px)}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;gap:16px;border-bottom:1px solid #eee}.sheet-head h2{font-size:21px;letter-spacing:-.5px;margin:0}.sheet-body{padding:20px 22px;max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain}.sheet-body h3{font-size:14px;font-weight:600;margin:0 0 15px}.small-text{font-size:12px;color:#777;line-height:1.6;margin:12px 0 18px}.sheet-error{font-size:12px;color:#333;line-height:1.6;margin:12px 0 0}.sheet-error:empty{display:none}.secondary-button{display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:11px;background:#eee;color:#111;min-height:48px;padding:12px 15px;font-size:13px;font-weight:600;width:100%;cursor:pointer;text-align:center}.secondary-button svg{width:18px;height:18px}.upload-actions{display:flex;flex-direction:column;gap:9px;margin-top:22px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;border:0;border-bottom:1px solid #e6e6e6;background:white;width:100%;padding:14px 0;text-align:left;font-size:13px}.list-row>span{min-width:0}.list-row small,.user-row small{display:block;font-size:11px;color:#777;font-weight:400;margin-top:6px}.list-row svg{width:17px;height:17px;flex-shrink:0}.rubric-task{margin:0 0 26px}.rubric-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eee;font-size:12px;line-height:1.5}.rubric-row input{width:70px;flex-shrink:0;min-height:44px;padding:10px;text-align:center}.account-email{font-size:13px;color:#666;margin:0 0 25px;overflow-wrap:anywhere}.user-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;padding:16px 0;border-bottom:1px solid #eee}.user-row>span{min-width:0;overflow-wrap:anywhere}.text-toggle{background:#eee;border:0;border-radius:8px;padding:9px 12px;font-size:11px;flex-shrink:0}.user-list{margin-bottom:24px}.sheet-body .camera-button{max-width:none}.viewer-header{gap:10px}.viewer-header .mode{margin-left:0}
@media(max-width:600px){dialog{margin:auto auto calc(8px + env(safe-area-inset-bottom,0px));width:calc(100% - 16px);border-radius:18px;max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px))}.sheet-body{max-height:calc(100dvh - 128px - env(safe-area-inset-bottom,0px));padding:20px}.sheet-head{padding:15px 20px}.viewer-header h1{font-size:23px;letter-spacing:-1.1px}.header-tools{gap:5px}}
@media(max-width:370px){.viewer-header h1{font-size:21px}.viewer-header{gap:7px}.header-tools .icon-button{width:32px;height:32px}}

.test-entry{padding-bottom:8px;border-bottom:1px solid #e6e6e6}.test-entry .list-row{border-bottom:0}.rubric-link{font-size:11px;padding:3px 0 8px}
