:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#203831;background:#f4f6f3;font-synthesis:none;font-weight:400;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,.file-input:focus-visible+.upload-button{outline:3px solid #b88627;outline-offset:4px}button{transition:background .18s,color .18s}a{color:inherit}h1,h2,h3,p,figure{margin:0}.app-shell{max-width:1280px;padding:0 48px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 0;border-bottom:1px solid #dce3dc}.brand{display:flex;gap:12px;align-items:center;font-weight:800;font-size:21px;letter-spacing:.04em;text-decoration:none}.brand-icon{display:grid;place-items:center;width:43px;height:46px;border-radius:12px 12px 12px 3px;color:#f6f4e9;background:#173f34;font-size:24px;font-family:Georgia,serif}.brand small{display:block;font-size:8px;letter-spacing:.22em;font-weight:600;color:#66766d}.academic{font-size:12px;color:#64766d}.intro{padding:43px 0 32px;max-width:760px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:750;color:#63796a}h1{margin:12px 0 15px;font-size:clamp(30px,3.9vw,47px);line-height:1.13;font-weight:650;letter-spacing:-.045em}h1 span{color:#55745b}.intro-copy{max-width:620px;font-size:14px;color:#65746b;line-height:1.8}.model-status{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:18px;color:#45654e}.model-status i{display:block;width:7px;height:7px;background:#508660;border-radius:50%}.model-status.loading i{background:#ba8d37}.model-status.error i{background:#ad4234}.model-help{font-size:12px;margin-top:8px;color:#8e3d32}.workspace{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);gap:24px;align-items:start}.panel{background:#fff;border:1px solid #dee6dd;border-radius:18px;padding:26px;box-shadow:0 4px 22px #264b3112}.panel-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:24px}.step{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf2e9;font-size:11px;flex-shrink:0;color:#54714f;font-weight:750}h2{font-size:17px;letter-spacing:-.02em;font-weight:650}.panel-heading p{font-size:11px;color:#788479;margin-top:3px}.source-switch{display:flex;background:#f1f4ef;border-radius:10px;padding:4px;margin-bottom:18px}.source-switch button{border:0;flex:1;min-height:41px;color:#6b7a70;border-radius:7px;background:transparent;font-size:12px;font-weight:650}.source-switch button.active{background:#fff;color:#234f3c;box-shadow:0 1px 5px #213b2415}.upload-control{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:16px 0}.upload-control>span{font-size:10px;color:#758174}.upload-button{border:1px solid #d8e2d5;background:#fff;display:inline-flex;gap:9px;align-items:center;border-radius:8px;padding:10px 14px;font-size:11px;font-weight:650;cursor:pointer}.upload-button:hover{background:#f3f7ef}.upload-button span{font-size:17px;color:#426b4c}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.upload-control:focus-within .upload-button{outline:3px solid #b88627;outline-offset:3px}.preview-area{margin-top:18px;min-height:280px;background:#f8faf6;border:1px dashed #d6dfd0;border-radius:12px;display:grid;place-items:center;overflow:hidden}.empty-photo{text-align:center;color:#7d8b7d;padding:30px 14px}.frame-icon{font-size:40px;font-weight:300;line-height:1.2;color:#94a68b}.empty-photo h3{font-size:13px;margin:15px 0 5px;color:#5c715d;font-weight:550}.empty-photo p{font-size:11px}.has-photo{background:#eff2ed;border-style:solid}.preview-area figure{width:100%;text-align:center}.preview-area img{display:block;max-height:390px;width:100%;object-fit:contain}.preview-area figcaption{font-size:10px;color:#677d68;padding:9px}.primary-button{border:1px solid #194a35;color:#fff;background:#1e503b;border-radius:9px;padding:12px 18px;font-size:12px;font-weight:600;min-height:44px}.primary-button:hover:not(:disabled){background:#103e2a}.secondary-button{background:#f0f5ec;color:#31583b;border:1px solid #cedcc8;border-radius:8px;min-height:44px;padding:10px 16px;font-size:12px}.text-button{padding:8px 4px;min-height:40px;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;color:#486e4c;font-size:11px}.analyze-actions{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:5px}.analyze-button{width:100%;display:flex;justify-content:center;align-items:center;gap:25px}.privacy-note{font-size:10px;color:#778373;text-align:center;margin-top:11px}.error-message{font-size:12px;background:#fff1ec;color:#963d2e;border:1px solid #f0d5c8;padding:12px;border-radius:9px;margin-top:12px;overflow-wrap:anywhere}.camera-control{margin:16px 0}.camera-control video{width:100%;max-height:350px;object-fit:contain;border-radius:10px;background:#15261f}.camera-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.helper,.camera-control>p{font-size:11px;color:#657762;margin-top:10px}.empty-result{text-align:center;padding:30px 15px 38px;min-height:322px;display:flex;flex-direction:column;align-items:center;justify-content:center}.result-glyph{font-size:46px;line-height:1.3;color:#8fa184}.empty-result h3{font-size:17px;font-weight:550;margin:14px 0 9px;letter-spacing:-.02em}.empty-result>p{max-width:265px;font-size:12px;color:#7c887a;line-height:1.9}.category-tags{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:23px}.category-tags span{padding:5px 10px;font-size:10px;border:1px solid #dce5d7;background:#f7faf4;border-radius:20px;color:#657a5e}.category-tags span:nth-child(2){background:#fdf8ec;color:#8d762e;border-color:#eee3bf}.category-tags span:nth-child(3){background:#fcf0ec;color:#9d6752;border-color:#f2ded3}.training-note{background:#f6f6ef;border:1px solid #e5e6d6;border-radius:10px;padding:15px 17px;margin-top:18px}.training-note strong{font-size:11px;font-weight:650;color:#6f7154}.training-note p{font-size:10px;color:#85836d;line-height:1.8;margin-top:5px}.detected-state{border-radius:12px;padding:22px;margin:8px 0 25px;background:#eef5e9}.detected-state h3{font-size:33px;letter-spacing:-.04em;color:#3b6b42;margin:7px 0 1px}.detected-state p{font-size:11px;color:#5e775e}.detected-state.partial{background:#fdf5df}.detected-state.partial h3{color:#8c651b}.detected-state.critical{background:#fcf0ea}.detected-state.critical h3{color:#a34d35}.scores-title{font-size:12px;font-weight:650;margin-bottom:15px}.score-row{margin-bottom:16px}.score-row>div{display:flex;justify-content:space-between;gap:10px;font-size:11px;margin-bottom:6px}.score-row span{font-variant-numeric:tabular-nums;color:#6d7f6c}progress{appearance:none;display:block;border:0;width:100%;height:6px;border-radius:5px;background:#edf1e9;overflow:hidden}progress::-webkit-progress-bar{background:#edf1e9;border-radius:5px}progress::-webkit-progress-value{background:#678a59;border-radius:5px}progress::-moz-progress-bar{background:#678a59;border-radius:5px}.recommendation{border-top:1px solid #e5eadf;padding-top:18px;margin-top:24px}.recommendation h3{font-size:12px;margin-bottom:7px}.recommendation p{font-size:12px;color:#64755f;line-height:1.8}footer{display:flex;gap:16px;justify-content:space-between;border-top:1px solid #dce3dc;margin-top:36px;padding:22px 0 28px;font-size:9px;color:#8b9688}@media(min-width:1400px){.app-shell{padding:0 28px}.intro{padding-top:56px}}@media(max-width:760px){.app-shell{padding:0 22px}.topbar{padding:21px 0}.academic span{display:none}.academic{font-size:10px}.brand{font-size:18px}.brand-icon{width:36px;height:39px}.intro{padding:32px 0 25px}.intro-copy{font-size:13px}.workspace{grid-template-columns:1fr;gap:18px}.panel{padding:21px;border-radius:14px}.panel-heading{margin-bottom:19px}.preview-area{min-height:240px}.empty-result{min-height:235px;padding:20px 8px 28px}.result-panel{margin-bottom:5px}footer{flex-direction:column;gap:5px;margin-top:26px}.privacy-note{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
