:root{--primary:#007bff;--primary-hover:#0056b3;--handle-size:8px;--handle-touch-size:18px;--border-color:#fff;--overlay-color:rgba(0,0,0,.5);--grid-color:hsla(0,0%,100%,.8);--handle-bg:#fff;--handle-border:#000;--transition:all 0.2s ease;--bg-primary:#fff;--bg-secondary:#f8f9fa;--text-primary:#212529;--text-secondary:#6c757d;--border:#dee2e6;--shadow:0 2px 8px rgba(0,0,0,.1);--success:#28a745;--warning:#ffc107;--danger:#dc3545;--info:#17a2b8}body[data-theme=dark]{--primary:#0d6efd;--overlay-color:rgba(0,0,0,.7);--grid-color:hsla(0,0%,100%,.6);--bg-primary:#212529;--bg-secondary:#343a40;--text-primary:#fff;--text-secondary:#adb5bd;--border:#495057;--shadow:0 2px 8px rgba(0,0,0,.3)}body[data-theme=minimal]{--primary:#333;--overlay-color:rgba(0,0,0,.3);--grid-color:rgba(0,0,0,.1);--bg-primary:#fefefe;--bg-secondary:#fafafa;--text-primary:#333;--text-secondary:#777;--border:#eee}body[data-theme=high-contrast]{--primary:#00f;--overlay-color:rgba(0,0,0,.8);--grid-color:rgba(0,0,0,.9);--bg-primary:#fff;--bg-secondary:#f0f0f0;--text-primary:#000;--text-secondary:#333;--border:#000;--handle-border:#000}*{box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;margin:0;transition:background-color .3s ease,color .3s ease}.lab-container{margin:0 auto;max-width:1400px;padding:20px}.lab-header{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:10px}.lab-header h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.lab-layout{display:grid;gap:30px;grid-template-columns:1fr 380px;margin-top:20px}.main-workspace,.side-panel{position:relative}.side-panel{display:flex;flex-direction:column;gap:20px}.controls-section{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:20px 0}.control-group{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:15px}.control-group h4{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 10px}.controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.btn{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:500;outline:none;padding:8px 12px;transition:all .2s ease}.btn:hover{background:var(--bg-secondary);box-shadow:0 2px 4px rgba(0,0,0,.1);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.btn-sm{font-size:12px;padding:4px 8px}.btn:disabled{cursor:not-allowed;opacity:.6}.status-bar{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:20px 0;padding:15px}.status-item{text-align:center}.status-value{color:var(--primary);font-size:18px;font-weight:700}.status-label{color:var(--text-secondary);font-size:11px;margin-top:2px}.panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:20px}.panel h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 15px}.coordinate-display{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-family:Courier New,monospace;font-size:12px;margin:15px 0;padding:15px}.coordinate-row{display:flex;justify-content:space-between;margin:5px 0}.coordinate-label{color:var(--primary);font-weight:700}.log-output{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:Courier New,monospace;font-size:11px;max-height:150px;overflow-y:auto;padding:10px}.log-output>div{border-bottom:1px solid var(--border);padding:2px 0}.log-output>div:last-child{border-bottom:none}.theme-selector{display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin:10px 0}.theme-option{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:12px;padding:8px;text-align:center;transition:all .2s ease}.theme-option:hover{background:var(--bg-secondary)}.theme-option.active{background:var(--primary);border-color:var(--primary);color:#fff}.feature-toggle{align-items:center;display:flex;gap:8px;margin:8px 0}.feature-toggle input[type=checkbox]{accent-color:var(--primary);cursor:pointer;height:16px;width:16px}.feature-toggle label{color:var(--text-primary);cursor:pointer;user-select:none}@media (max-width:1024px){.lab-layout{grid-template-columns:1fr}.side-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (max-width:768px){.controls-section{grid-template-columns:1fr}.status-bar{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.lab-container{padding:10px}.controls{align-items:stretch;flex-direction:column}.btn{width:100%}.status-bar{grid-template-columns:repeat(2,1fr)}}.cropper-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;display:inline-block;max-height:100%;max-width:100%;overflow:hidden;position:relative;touch-action:none;user-select:none}.cropper-container img{display:block;height:auto;max-width:100%}.cropper-crop-area{border:2px solid var(--border-color);box-sizing:border-box;cursor:move;left:0;outline:none;position:absolute;top:0;transition:var(--transition);z-index:1000}.cropper-crop-area:before{bottom:-2px;box-shadow:0 0 0 9999px var(--overlay-color);content:"";left:-2px;pointer-events:none;position:absolute;right:-2px;top:-2px}.cropper-crop-area:focus{border-color:var(--primary)}.cropper-grid{height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.cropper-crop-area.is-active .cropper-grid,.cropper-crop-area:focus .cropper-grid,.cropper-crop-area:hover .cropper-grid{opacity:1}.cropper-grid-line{background:var(--grid-color);position:absolute}.cropper-grid-line:first-child{height:1px;left:0;top:33.33%;width:100%}.cropper-grid-line:nth-child(2){height:1px;left:0;top:66.66%;width:100%}.cropper-grid-line:nth-child(3){height:100%;left:33.33%;top:0;width:1px}.cropper-grid-line:nth-child(4){height:100%;left:66.66%;top:0;width:1px}.cropper-handle{background:var(--handle-bg);border:1px solid var(--handle-border);box-sizing:border-box;height:var(--handle-size);opacity:0;position:absolute;transition:opacity .2s ease;width:var(--handle-size);z-index:1001}.cropper-crop-area.is-active .cropper-handle,.cropper-crop-area:focus .cropper-handle,.cropper-crop-area:hover .cropper-handle{opacity:1}.cropper-crop-area.is-dragging,.cropper-crop-area.is-dragging .cropper-handle{transition:none}.cropper-handle--nw{cursor:nw-resize;left:-4px;top:-4px}.cropper-handle--ne{cursor:ne-resize;right:-4px;top:-4px}.cropper-handle--sw{bottom:-4px;cursor:sw-resize;left:-4px}.cropper-handle--se{bottom:-4px;cursor:se-resize;right:-4px}.cropper-handle--n{cursor:n-resize;left:50%;top:-4px;transform:translateX(-50%)}.cropper-handle--s{bottom:-4px;cursor:s-resize;left:50%;transform:translateX(-50%)}.cropper-handle--w{cursor:w-resize;left:-4px;top:50%;transform:translateY(-50%)}.cropper-handle--e{cursor:e-resize;right:-4px;top:50%;transform:translateY(-50%)}@media (pointer:coarse){.cropper-handle{border-radius:3px;height:var(--handle-touch-size);opacity:1;width:var(--handle-touch-size)}.cropper-handle--nw{left:-9px;top:-9px}.cropper-handle--ne{right:-9px;top:-9px}.cropper-handle--sw{bottom:-9px;left:-9px}.cropper-handle--se{bottom:-9px;right:-9px}.cropper-handle--n{top:-9px}.cropper-handle--s{bottom:-9px}.cropper-handle--w{left:-9px}.cropper-handle--e{right:-9px}}.color-palette-panel{min-height:200px}.palette-controls{display:flex;gap:8px;margin-bottom:15px}.color-palette{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr);min-height:120px;padding:15px}.color-palette.palette-12{grid-template-columns:repeat(6,1fr)}.color-palette.palette-4{grid-template-columns:repeat(4,1fr)}.color-swatch{aspect-ratio:1;border:2px solid transparent;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);cursor:pointer;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.color-swatch:before{background:linear-gradient(135deg,hsla(0,0%,100%,.2),transparent);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.color-swatch:hover{box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-2px) scale(1.05)}.color-swatch:hover:before{opacity:1}.color-swatch.selected{border-color:var(--primary);box-shadow:0 4px 16px rgba(0,0,0,.2);transform:scale(1.1)}.color-swatch.selected:after{color:#fff;content:"✓";font-size:16px;font-weight:700;left:50%;position:absolute;text-shadow:0 1px 2px rgba(0,0,0,.3);top:50%;transform:translate(-50%,-50%)}@keyframes colorFadeIn{0%{opacity:0;transform:scale(.8) rotate(180deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.color-swatch.new{animation:colorFadeIn .5s cubic-bezier(.4,0,.2,1)}.selected-color-display{align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;display:flex;gap:10px;margin-top:15px;padding:10px}.selected-color-display span{color:var(--text-secondary);font-size:12px;font-weight:500}.selected-color-box{border:1px solid var(--border);border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.1);height:24px;width:24px}#selectedColorHex{color:var(--text-primary);font-family:Courier New,monospace;font-size:13px;font-weight:700}@media (max-width:480px){.color-palette.palette-12{grid-template-columns:repeat(4,1fr)}}.annotation-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:999}.annotation-panel{min-height:200px}.annotation-input-group{display:flex;gap:8px;margin-bottom:15px}.annotation-input-group input{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);flex:1;font-size:13px;outline:none;padding:8px 12px;transition:border-color .2s ease}.annotation-input-group input:focus{border-color:var(--primary)}.annotation-input-group input::placeholder{color:var(--text-secondary)}.annotation-region{border-radius:4px;cursor:pointer;opacity:.7;pointer-events:auto;position:absolute;transition:all .3s cubic-bezier(.4,0,.2,1)}.annotation-region:hover{opacity:.9;transform:scale(1.02);z-index:1002!important}.annotation-region.selected{box-shadow:0 0 0 3px var(--primary);opacity:1;z-index:1003!important}.annotation-label{border-radius:4px;font-size:12px;left:0;opacity:0;padding:2px 8px;pointer-events:none;position:absolute;top:-25px;transform:translateY(5px);transition:all .2s ease;white-space:nowrap}.annotation-region.selected .annotation-label,.annotation-region:hover .annotation-label{opacity:1;transform:translateY(0)}.annotation-list{max-height:300px;overflow-y:auto;padding-right:5px}.annotation-list::-webkit-scrollbar{width:6px}.annotation-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.annotation-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.annotation-list::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.annotation-list-item{align-items:center;border:1px solid transparent;border-radius:4px;cursor:pointer;display:flex;gap:10px;margin-bottom:5px;padding:8px;transition:all .2s ease}.annotation-list-item:hover{background:var(--bg-secondary)}.annotation-list-item.selected{background:var(--bg-secondary);border-color:var(--primary)}.annotation-list-item button{opacity:0;transition:opacity .2s ease}.annotation-list-item:hover button{opacity:1}@keyframes annotationSlideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.annotation-list-item.new,.annotation-region.new{animation:annotationSlideIn .3s ease}.bleed-visualization-static{pointer-events:none;z-index:10}.bleed-labels-static,.bleed-visualization-static,.bleed-visualization-static svg{height:100%;left:0;position:absolute;top:0;width:100%}.bleed-labels-static{pointer-events:none}.bleed-label-static{background:var(--bg-secondary);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:11px;opacity:.9;padding:2px 6px;position:absolute;white-space:nowrap}.bleed-area-panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden;transition:all .3s ease}.bleed-area-panel .panel-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;user-select:none}.bleed-area-panel .panel-header h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0}.bleed-area-panel .panel-toggle-icon{color:var(--text-secondary);font-size:12px;transition:transform .3s ease}.bleed-area-panel.collapsed .panel-toggle-icon{transform:rotate(-90deg)}.bleed-area-panel.collapsed .panel-content{display:none}.bleed-area-panel .panel-content{background:var(--bg-primary);padding:16px}.bleed-area-panel .control-group{margin-bottom:16px}.bleed-area-panel .control-group:last-child{margin-bottom:0}.bleed-area-panel .control-group label{color:var(--text-secondary);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.bleed-area-panel .form-control{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:13px;padding:8px 12px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.bleed-area-panel .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(0,122,255,.1);outline:none}.bleed-area-panel select.form-control{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236c757d' d='M6 9 2 5h8z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;cursor:pointer;padding-right:36px}.bleed-info{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:12px}.bleed-info .info-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:12px}.bleed-info .info-item{display:flex;flex-direction:column}.bleed-info .info-label{color:var(--text-secondary);font-size:10px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.bleed-info .info-value{color:var(--text-primary);font-size:13px;font-weight:500}.bleed-legend{border-top:1px solid var(--border);padding-top:12px}.bleed-legend .legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:12px;margin-bottom:8px}.bleed-legend .legend-item:last-child{margin-bottom:0}.bleed-legend .legend-color{border-radius:1px;display:inline-block;height:2px;margin-right:8px;width:16px}.bleed-actions{display:flex;gap:8px;margin-top:16px}.bleed-actions .btn{align-items:center;border:1px solid transparent;border-radius:4px;cursor:pointer;display:flex;flex:1;font-size:12px;font-weight:500;gap:6px;justify-content:center;padding:8px 12px;transition:all .2s ease}.bleed-actions .btn-secondary{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}.bleed-actions .btn-secondary:hover{background:var(--bg-primary);border-color:var(--primary)}.bleed-actions .btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.bleed-actions .btn-primary:hover{background:var(--primary-hover);box-shadow:0 2px 8px rgba(0,122,255,.2);transform:translateY(-1px)}.export-panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.export-panel .panel-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 16px}.export-panel .panel-header h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0}.export-panel .panel-content{background:var(--bg-primary);padding:16px}.quick-export{margin-bottom:16px}.quick-export label{color:var(--text-secondary);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.export-format-buttons{display:flex;gap:8px}.format-btn{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);cursor:pointer;flex:1;font-size:12px;font-weight:500;padding:8px;text-transform:uppercase;transition:all .2s ease}.format-btn:hover{background:var(--bg-secondary);border-color:var(--primary)}.format-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.export-panel .control-group{margin-bottom:16px}.export-panel .form-control{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:13px;padding:8px 12px;transition:border-color .15s ease;width:100%}.export-panel .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(0,122,255,.1);outline:none}.export-panel .dimension-inputs{align-items:center;display:flex;gap:8px}.export-panel .dimension-separator{color:var(--text-secondary);font-weight:500}.export-panel .btn-icon{background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer;padding:8px;transition:all .2s ease}.export-panel .btn-icon:hover{background:var(--bg-primary);border-color:var(--primary)}.export-panel .btn-icon.active{background:var(--primary);border-color:var(--primary);color:#fff}.quality-indicators{color:var(--text-secondary);display:flex;font-size:11px;justify-content:space-between;margin-top:4px}.form-range{-webkit-appearance:none;background:var(--border);border-radius:2px;height:4px;margin:12px 0;outline:none;width:100%}.form-range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--primary);border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);cursor:pointer;height:16px;transition:all .2s ease;width:16px}.form-range::-webkit-slider-thumb:hover{box-shadow:0 2px 8px rgba(0,122,255,.4);transform:scale(1.2)}.form-range::-moz-range-thumb{background:var(--primary);border:none;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);cursor:pointer;height:16px;transition:all .2s ease;width:16px}.advanced-options{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.advanced-options summary{color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 0;text-transform:uppercase;user-select:none}.advanced-options summary:hover{color:var(--text-primary)}.advanced-options[open] summary{color:var(--text-primary);margin-bottom:12px}.help-text{color:var(--text-secondary);display:block;font-size:11px;margin-top:4px}.export-info{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;margin:16px 0;padding:12px}.export-info .info-item{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.export-info .info-item:last-child{margin-bottom:0}.export-info .info-label{color:var(--text-secondary);font-size:11px;text-transform:uppercase}.export-info .info-value{color:var(--text-primary);font-weight:500}.export-actions{margin-top:16px}.export-actions .btn{border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;padding:10px;transition:all .2s ease;width:100%}.export-actions .btn-primary{background:var(--primary);border:1px solid var(--primary);color:#fff}.export-actions .btn-primary:hover{background:var(--primary-hover);box-shadow:0 2px 8px rgba(0,122,255,.3);transform:translateY(-1px)}body[data-theme=dark] .bleed-label-static{background:var(--bg-secondary);border-color:var(--border)}body[data-theme=dark] select.form-control{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23adb5bd' d='M6 9 2 5h8z'/%3E%3C/svg%3E")}body[data-theme=high-contrast] .bleed-label-static{background:#fff;border:2px solid #000;color:#000}body[data-theme=high-contrast] .btn,body[data-theme=high-contrast] .form-control{border-width:2px}@media (max-width:768px){.bleed-info .info-grid{grid-template-columns:1fr}.bleed-actions{flex-direction:column}.export-panel .dimension-inputs{align-items:stretch;flex-direction:column}.export-panel .dimension-separator{display:none}}@media print{.bleed-area-panel,.export-panel{display:none}}
/*# sourceMappingURL=main.242c0424.css.map*/