@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f5f7f8;--ink:#1b3037;--muted:#7a898f;--teal:#168477;--line:#e5ebed;--nav:#152b32;--orange:#edac67}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}button,select,input{font:inherit}button,a,select,label.dropzone{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #e8a45b;outline-offset:4px}[hidden]{display:none!important}svg{width:19px;height:19px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:var(--nav);color:#afbec2;padding:35px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:white;font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:25px;margin:0 11px 55px;letter-spacing:-1px}.brand-icon{display:grid;place-items:center;border-radius:11px;background:#e6f3e9;color:#193f3d;font-size:40px;line-height:1;width:43px;height:45px;position:relative;padding-bottom:6px}.brand-icon span{position:absolute;right:4px;bottom:2px;color:#eaab69;font-size:35px}.brand-ai{color:#7ec5b4;margin-left:3px;font-weight:400}.brand small{display:block;font-size:8px;letter-spacing:2.3px;color:#94aaaf;font-weight:600;margin-top:5px}.workspace-label,.tiny-label{font-size:9px;font-weight:700;letter-spacing:1.5px}.workspace-label{color:#789198;padding:0 13px;margin-bottom:17px}nav{display:flex;flex-direction:column;gap:8px}nav a{display:flex;align-items:center;gap:11px;padding:14px 12px;border-radius:7px;font-size:12px;font-weight:500}nav a.active{color:#e7f8f2;background:#294149}nav a.active svg{color:#95d6be}.nav-dot{width:5px;height:5px;background:#a5d9ba;border-radius:50%;margin-left:auto}.count{font-size:10px;background:#30464d;padding:2px 6px;border-radius:4px;margin-left:auto}.sidebar-note{margin:50px 12px 0;padding-top:24px;border-top:1px solid #31454b}.sidebar-note .tiny-label{font-size:8px;color:#8ea6ac}.scribble{font-family:Georgia,serif;font-style:italic;font-size:44px;letter-spacing:10px;line-height:1.3;color:#617e81;transform:rotate(-7deg);margin:25px 0}.sidebar-note p{font-size:14px;line-height:1.7;color:#c3d3d5}.note-line{display:block;width:27px;height:2px;background:#d8a76f;margin:23px 0 15px}.sidebar-note small{font-size:9px;color:#879fa6}.local-badge{margin-top:auto;font-size:9px;padding:20px 7px 0;color:#b1c8c9}.local-badge small{display:block;margin:8px 0 0 15px;color:#6f8b92;font-size:9px}.pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:#62bda0;margin-right:7px;box-shadow:0 0 0 4px #63ba9d0d}main{margin-left:242px}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 42px}.breadcrumb{font-size:11px;color:#86949a}.breadcrumb span{margin:0 12px;color:#ccd2d5}.breadcrumb b{color:#42585f;font-weight:500}.top-meta{display:flex;align-items:center;gap:22px}.tag{font-size:8px;letter-spacing:1px;font-weight:700;padding:6px 9px;background:#f2f5f6;border-radius:4px;color:#6a7e85;white-space:nowrap}.avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#eadfd0;font-size:10px;font-weight:700;color:#73583f}.page{padding:36px 42px 15px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.9px;color:#56877e;margin-bottom:12px}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:30px;letter-spacing:-1.15px;line-height:1.3;margin:0 0 10px;font-weight:800}h1>span{color:var(--teal)}p{line-height:1.7}h1+p{color:var(--muted);margin:0;font-size:12px}.button{border:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:600;padding:12px 17px;min-height:40px}.button svg{width:16px;height:16px}.secondary{background:white;border:1px solid #dce4e6;color:#50646b}.primary{background:var(--teal);color:white;box-shadow:0 4px 7px #127b6f12}.primary:hover{background:#106c62}.full{width:100%}.overview{border:1px solid var(--line);background:#fff;border-radius:8px;display:flex;align-items:center;padding:20px 22px;margin-bottom:25px;gap:0}.overview>div{display:flex;align-items:center;gap:13px;flex:1;border-right:1px solid var(--line);padding-left:24px}.overview>div:first-child{padding-left:0}.overview>div:last-child{border:0;flex:.85}.overview-icon{color:#578d82;border:1px solid #e3eeea;background:#f7faf8;padding:9px;border-radius:8px}.overview b{font-size:17px;display:block;font-family:Manrope,Arial,sans-serif;font-weight:800;letter-spacing:-.5px}.overview small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.overview .model-status{font-size:10px;justify-content:center;gap:1px;color:#578178;padding-left:16px}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{border:1px solid var(--line);background:white;border-radius:9px;padding:24px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}.card-heading>div{display:flex;align-items:center;gap:10px}h2{font-size:14px;font-weight:800;margin:0;letter-spacing:-.3px}.step{font-size:10px;font-weight:700;color:#65998e;border:1px solid #dcebe6;background:#f6faf8;border-radius:5px;width:25px;height:25px;display:grid;place-items:center}.small-muted{color:var(--muted);font-size:10px;line-height:1.7}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:19px;gap:20px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:0 4px 12px;color:#8c999e;font-size:11px;display:flex;gap:8px;align-items:center}.tabs button.selected{color:var(--teal);border-color:var(--teal);font-weight:700}.tabs svg{width:15px;height:15px}.canvas-wrap{background:#193138;border-radius:7px;position:relative;overflow:hidden;aspect-ratio:560/330}.canvas-wrap canvas{width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:crosshair;z-index:2}.canvas-wrap:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#64848138 1px,transparent 1px);background-size:19px 19px}.canvas-corner{position:absolute;top:16px;left:17px;color:#72908f;font-size:7px;letter-spacing:1.3px}.canvas-cross{position:absolute;right:15px;bottom:12px;color:#78948b;font-weight:400}#canvas-placeholder{position:absolute;inset:16px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;color:#aec1bd;font-size:11px}.handwritten{font-family:Georgia,serif;font-style:italic;color:#9cc9b7;font-size:110px;line-height:1.05;transform:rotate(-11deg);opacity:.5;margin-bottom:12px}#canvas-placeholder small{font-size:9px;color:#74918e;margin-top:8px}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:13px;font-size:10px;color:#7e9094}.canvas-toolbar label{display:flex;align-items:center;gap:10px}.canvas-toolbar input{width:68px;height:3px;accent-color:var(--teal)}.text-button{padding:0;background:none;border:0;color:#5b747b;font-size:10px;display:inline-flex;align-items:center;gap:6px;min-height:30px}.text-button:hover{color:var(--teal)}.text-button svg{height:13px;width:13px}.model-picker{margin:20px 0 15px}.model-picker label{display:block;font-size:10px;font-weight:500;margin-bottom:8px;color:#5c7077}select{border:1px solid #dfe7e8;border-radius:5px;padding:11px 10px;background:white;color:#425a63;font-size:11px;max-width:100%}.model-picker select{width:100%}#predict{min-height:43px}#predict svg:last-child{margin-left:auto}#predict svg:first-child{margin-right:auto}#predict>span:nth-child(2){flex:1}.examples-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;font-size:9px;color:#96a1a6;margin-top:12px}.examples-line button{font-size:9px;color:#4f897b}.soft{background:#edf5f1;color:#588e7f}.result-card{position:relative;display:flex;flex-direction:column}.empty-result{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;padding:25px 0 60px;text-align:center}.scan-illustration{width:100px;height:100px;position:relative;margin-bottom:29px}.scan-number{position:absolute;inset:8px;border-radius:16px;background:repeating-linear-gradient(0deg,#f3f8f6,#f3f8f6 4px,#eef5f1 5px);display:grid;place-items:center;font-family:Manrope;font-size:53px;font-weight:500;color:#bbd2c8}.scan-illustration i{position:absolute;width:17px;height:17px;border:2px solid #9fbaaf}.scan-illustration i:nth-of-type(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:4px 0 0}.scan-illustration i:nth-of-type(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 4px 0 0}.scan-illustration i:nth-of-type(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 4px}.scan-illustration i:nth-of-type(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 4px 0}.empty-result h3{font-size:13px;letter-spacing:-.2px;margin:0 0 8px}.empty-result p{font-size:11px;line-height:1.8;color:#93a0a4;margin:0}.empty-line{width:34px;height:1px;background:#d8e3dd;margin:25px}.empty-result small{font-size:9px;color:#a5afb3}.result-footer{border-top:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:6px;margin-top:auto;padding-top:17px;color:#93a19f;font-size:9px}.result-footer svg{width:13px;height:13px}.pipeline{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:8px;background:#f0f4f3;padding:23px;margin-top:24px}.pipeline-intro{padding-right:20px;border-right:1px solid #dfe6e3;margin-right:5px}.pipeline-intro .tiny-label{font-size:7px;letter-spacing:1.2px;color:#7a8f87}.pipeline h3{font-size:12px;margin:6px 0 0}.pipeline>div:not(:first-child){display:flex;gap:9px;align-items:center;flex:1}.pipeline b{font-size:9px;color:#86a59a;font-weight:500}.pipeline span{font-size:10px;color:#4a655c;white-space:nowrap}.pipeline small{display:block;font-size:8px;color:#98a69f;margin-top:5px}.pipeline i{font-style:normal;color:#becbc4}footer{font-size:8px;color:#9aa6ac;padding:22px 1px}footer>span{margin:0 8px}.footer-right{float:right}.prediction-hero{display:flex;align-items:center;justify-content:space-evenly;border-radius:7px;background:#f4f8f5;padding:20px;margin-bottom:20px}.prediction-hero .tiny-label{font-size:8px;color:#6d9687}.prediction-hero strong{display:block;text-align:center;font-size:99px;line-height:1.2;font-family:Manrope;font-weight:600;color:#1a7764}.prediction-detail{display:flex;flex-direction:column;gap:7px;font-size:9px;color:#82968f}.prediction-detail>b{font-size:28px;color:#264d43;letter-spacing:-1px}.prediction-detail .tag{align-self:flex-start}.prediction-detail small{font-size:8px}.prob-header{display:flex;align-items:center;justify-content:space-between;margin:15px 0}.prob-header h3{font-size:10px;margin:0}.prob-header span{font-size:8px;color:#98a5a4}.probabilities{display:grid;grid-template-columns:1fr 1fr;gap:11px 19px;margin-bottom:15px}.prob-row{display:flex;align-items:center;gap:8px;font-size:10px}.prob-row>span{width:10px;color:#889793}.prob-row .bar{height:5px;flex:1;background:#f1f4f3;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:#c6d5ce;border-radius:5px}.prob-row.best .bar i{background:var(--teal)}.prob-row.best>span{color:var(--teal);font-weight:700}.prob-row small{width:39px;text-align:right;font-size:8px;color:#8d9c96}.correction{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding:15px 0;color:#869891;font-size:9px}.correction select{padding:6px;font-size:9px;margin-left:auto}.correction button{color:var(--teal);font-size:9px}.review-notice{background:#fff4e4;color:#9c6b2f;padding:10px;font-size:10px;border-radius:5px}.segments{display:flex;gap:5px;flex-wrap:wrap}.segment{border:1px solid #dce5e2;background:#f8faf9;color:#476359;border-radius:4px;padding:5px 8px;font-size:10px}.segment.active{border-color:var(--teal);color:var(--teal)}.dropzone{min-height:233px;border:1px dashed #bcd2c9;border-radius:7px;background:#f7faf8;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;color:#7d978c;cursor:pointer}.dropzone>svg{width:35px;height:35px;color:#639884;margin-bottom:6px}.dropzone b{font-size:13px;color:#467361}.dropzone span{font-size:11px}.dropzone small{font-size:9px}.dropzone.dragging{background:#e0f3e9;border-color:var(--teal)}#upload-preview{max-height:245px;width:100%;object-fit:contain;border:1px solid var(--line);background:#eef2f0;border-radius:7px}.metric-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.metric-card{padding:25px;background:white;border:1px solid var(--line);border-radius:8px}.metric-card.best{border-top:3px solid var(--teal)}.metric-card h2{display:flex;justify-content:space-between}.metric-card strong{display:block;font-family:Manrope;font-size:36px;margin:18px 0 4px;letter-spacing:-1px}.metric-card p{font-size:10px;color:var(--muted);margin:0}.table-card{margin-bottom:24px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}th{font-size:9px;color:#8b9a9f;font-weight:500;padding:17px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 10px;border-bottom:1px solid #edf1f2;color:#52696f}tbody tr:last-child td{border:0}.evaluation-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.matrix{display:grid;grid-template-columns:20px repeat(10,minmax(0,1fr));gap:3px;margin-top:20px}.matrix>span{display:grid;place-items:center;aspect-ratio:1;font-size:9px;border-radius:2px}.matrix .matrix-label{color:#94a39c;font-size:9px}.training-row{padding:17px 0;border-bottom:1px solid var(--line)}.training-row h3{margin:0 0 8px;font-size:12px}.training-row p{margin:5px 0;color:#748b81;font-size:10px;overflow-wrap:anywhere}.method-note{font-size:11px;color:#82928b}.errors-card{margin-top:24px}.errors{display:flex;flex-wrap:wrap;gap:12px}.error-example{background:#f4f7f5;border:1px solid var(--line);border-radius:5px;padding:9px;color:#627d6f;font-size:9px}.error-example canvas{display:block;width:45px;height:45px;margin-bottom:7px;image-rendering:pixelated}.history-empty{padding:75px 15px;text-align:center;color:#8e9c96;font-size:12px}.history-digit{display:flex;align-items:center;gap:9px}.history-digit canvas{width:32px;height:32px;image-rendering:pixelated;border-radius:3px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-grid p{font-size:12px;color:#73877d;line-height:1.9}.project-grid h3{font-size:13px;margin-top:25px}.toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translateX(-50%);padding:14px 22px;background:#213e38;color:white;border:1px solid #43685e;border-radius:8px;box-shadow:0 8px 30px #132f3220;z-index:50;max-width:90%;font-size:12px}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:480px;color:var(--ink);box-shadow:0 25px 80px #162f3330}dialog::backdrop{background:#152b3270;backdrop-filter:blur(3px)}dialog ol{padding-left:18px}dialog li,dialog p{font-size:12px;color:#71867b;line-height:1.9;margin-bottom:13px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
@media(min-width:1500px){.page{padding-top:48px}.canvas-wrap{aspect-ratio:560/360}.sidebar-note{margin-top:75px}}@media(max-height:830px){.sidebar-note{margin-top:25px}.scribble{font-size:33px;margin:17px 0}.sidebar{padding-top:25px}.brand{margin-bottom:35px}}@media(max-width:1200px){.sidebar{width:210px;padding-left:15px;padding-right:15px}main{margin-left:210px}.page{padding:28px 25px}.topbar{padding:0 25px}h1{font-size:25px}.overview{padding:17px 14px}.overview>div{padding-left:12px;gap:8px}.overview .model-status{font-size:8px}.overview b{font-size:14px}.overview small{font-size:8px}.overview-icon{padding:6px}.card{padding:19px}.pipeline{gap:10px;padding:20px 15px}.pipeline-intro{display:none}.lab-grid{gap:18px}.sidebar-note{margin-left:9px}}@media(max-width:900px){.sidebar{width:76px;padding:25px 10px}.brand{margin:0 auto 40px}.brand>span:nth-child(2),.workspace-label,nav a .nav-dot,nav a .count,.sidebar-note,.local-badge{display:none}nav a{font-size:0;justify-content:center;padding:15px 0}nav a>span:first-child{display:block}nav svg{width:21px;height:21px}main{margin-left:76px}.page-heading{align-items:flex-start}.page-heading>.button{font-size:0;padding:10px}.page-heading>.button svg{width:18px;height:18px}.overview .model-status{display:none}.overview>div:nth-child(3){border:0}.evaluation-grid{grid-template-columns:1fr}.toast{left:calc(50% + 38px)}.pipeline span{font-size:9px}.footer-right{display:none}.project-grid{grid-template-columns:1fr}}@media(max-width:650px){.sidebar{inset:0 0 auto;width:100%;height:61px;flex-direction:row;align-items:center;padding:10px 15px;z-index:20}.brand{margin:0 auto 0 0}.brand-icon{width:32px;height:33px;font-size:30px;border-radius:8px}.brand-icon span{font-size:25px}.brand>span:nth-child(2){display:block;font-size:17px}.brand small{display:none}nav{flex-direction:row;gap:5px}nav a{padding:10px}nav svg{width:18px;height:18px}main{margin:61px 0 0}.topbar{height:52px;padding:0 20px}.top-meta{gap:10px}.top-meta .tag{font-size:7px}.avatar{width:25px;height:25px;font-size:9px}.breadcrumb{font-size:10px}.page{padding:27px 16px 10px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:25px;max-width:310px}h1+p{font-size:11px;max-width:280px}.page-heading{margin-bottom:24px;gap:5px}.overview{padding:16px 10px;margin-bottom:18px}.overview>div{gap:7px;padding-left:10px}.overview-icon{display:none}.overview b{font-size:15px}.overview small{font-size:8px}.lab-grid{grid-template-columns:1fr}.card{padding:20px}.canvas-wrap{aspect-ratio:560/360}.card-heading{margin-bottom:20px}.empty-result{padding:45px 0 55px}.pipeline{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px;padding:22px}.pipeline i{display:none}.pipeline span{font-size:10px}.pipeline small{font-size:9px}.pipeline>div:not(:first-child){gap:12px}.pipeline b{font-size:11px}.metric-cards{gap:9px}.metric-card{padding:15px 10px}.metric-card h2{font-size:11px;flex-direction:column;gap:8px}.metric-card strong{font-size:26px;margin-top:13px}.metric-card p{font-size:8px}.metric-card .tag{font-size:6px;align-self:flex-start}.matrix>span{font-size:8px}.toast{left:50%;width:max-content;max-width:90%;bottom:16px}.probabilities{gap:12px 20px}.result-card{min-height:450px}footer{font-size:7px}#history-table{min-width:570px}}
