:root{color:#222;font-synthesis:none;background:#f4f4f4;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea{font:inherit}.app-shell{max-width:1120px;margin:0 auto;padding:30px 20px}header{margin-bottom:20px}h1{margin:0;font-size:26px;font-weight:600;line-height:1.2}.workspace{grid-template-columns:minmax(290px,360px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.settings{background:#fff;border:1px solid #bbb;padding:16px}.file-row{flex-direction:column;gap:9px;display:flex}.file-row input[type=file]{display:none}.file-button{color:#222;cursor:pointer;text-align:left;background:#eee;border:1px solid #999;border-radius:2px;flex:1;padding:9px 11px}.file-button:hover,.file-button.dragging{background:#dce9f3;border-color:#356fa6}.file-button span{font-size:13px;font-weight:600;display:block}.file-button small{color:#555;margin-top:3px;font-size:11px;display:block}.class-label{color:#222;margin-top:16px;font-size:13px;font-weight:600;display:block}.class-label span{color:#666;margin-left:7px;font-weight:400}textarea{resize:vertical;border:1px solid #999;border-radius:2px;width:100%;margin-top:6px;padding:7px;font-family:monospace;font-size:13px;line-height:1.4;display:block}textarea:focus{outline-offset:1px;outline:1px solid #356fa6}.class-editor{border:0;padding:0}.class-lines-box{border:1px solid #999;margin-top:6px}.class-row{border-bottom:1px solid #ddd;grid-template-columns:27px minmax(0,1fr) 34px;align-items:center;min-height:31px;display:grid}.class-row:last-child{border-bottom:0}.class-row>span{color:#666;padding-left:8px;font-family:monospace;font-size:11px;font-weight:400}.class-row input[type=text]{border:0;border-left:1px solid #e1e1e1;border-radius:0;outline:0;min-width:0;padding:6px 7px}.class-row input[type=text]:focus{background:#f4f8fb}.class-row input[type=color]{cursor:pointer;background:#fff;border:0;border-left:1px solid #ddd;width:34px;height:30px;padding:3px 5px}.add-class{cursor:pointer;background:#eee;border:1px solid #999;border-radius:2px;margin-top:8px;padding:5px 8px;font-size:12px}.add-class:hover{background:#ddd}.annotation-text.dragging{background:#dce9f3;border-color:#356fa6}.annotation-file-input{display:none}.upload-annotations{color:#111;cursor:pointer;background:#eee;border:1px solid #777;border-radius:2px;margin-top:8px;padding:6px 9px;font-size:12px}.upload-annotations:hover{background:#ddd}.notice{color:#5c4a0d;background:#fff7d9;border:1px solid #d2bd63;margin-top:14px;padding:8px 10px;font-size:13px;line-height:1.4}.notice.error{color:#832d25;background:#fff0ef;border-color:#c88882}.preview-area{min-width:0}.toolbar{background:#e9e9e9;border:1px solid #bbb;flex-wrap:wrap;align-items:center;gap:16px;margin:0;padding:9px 10px;display:flex}.toolbar label{color:#222;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:flex}.toolbar input[type=range]{accent-color:#356fa6;width:96px}.toolbar output{color:#555;width:30px;font-family:monospace;font-size:11px}.toolbar .check{margin-left:auto}.check input{width:14px;height:14px}.export{color:#111;cursor:pointer;background:#eee;border:1px solid #777;border-radius:2px;padding:6px 10px;font-size:13px}.export:hover{background:#ddd}.export span{margin-left:3px;font-size:15px}.canvas-wrap{background:#ddd;border:1px solid #bbb;border-top:0;justify-content:center;align-items:center;max-height:68vh;padding:18px;display:flex;overflow:auto}.canvas-wrap canvas{width:auto;max-width:100%;height:auto;max-height:calc(68vh - 36px);display:block;box-shadow:0 1px 3px #00000040}.empty-state{color:#555;text-align:center;background:#fff;border:1px solid #bbb;flex-direction:column;justify-content:center;align-items:center;min-height:280px;display:flex}.empty-state h2{color:#333;margin:8px 0;font-size:16px;font-weight:600}.empty-state p{margin:0;font-size:13px}footer{text-align:start;gap:10px;margin-top:18px;font-size:11px;display:flex}a{cursor:pointer}footer a{color:#666}footer a:hover{color:#222}@media (width<=760px){.app-shell{width:min(100% - 28px,1160px);padding-top:24px}.workspace{grid-template-columns:1fr}.toolbar{align-items:flex-start;gap:13px}.toolbar .check{margin-left:0}.export{margin-left:auto}.canvas-wrap{padding:10px}}
