@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&display=swap";:root{--bg: #0D0F14;--surface: #161920;--surface-2: #1E2230;--border: #2A2D3A;--border-focus: #3B82F6;--text: #E2E8F0;--text-muted: #94A3B8;--text-dim: #4B5563;--primary: #3B82F6;--primary-dark: #2563EB;--primary-fg: #FFFFFF;--error: #F87171;--radius: 6px;--font: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100dvh;display:flex;flex-direction:column;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.top-bar{flex-shrink:0;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border)}.top-bar-l{font-size:17px;font-weight:600;color:var(--text)}.page{flex:1;display:flex;overflow:hidden}.bottom-bar{flex-shrink:0;height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--surface);border-top:1px solid var(--border)}.bottom-bar-r{font-size:11px;color:var(--text-dim);font-weight:400}#status-wrap{display:flex;align-items:center;gap:8px}#status-dot{width:8px;height:8px;border-radius:50%;background:#374151;transition:background .3s ease}#status-dot.live{background:#22c55e}#status-lbl{font-size:12px;color:var(--text-dim);font-weight:400;transition:color .3s ease}#status-lbl.live{color:var(--text-muted)}#login-view{display:flex;flex:1;align-items:center;justify-content:center;padding:40px 24px}.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 3px #0000004d,0 8px 24px #0003;overflow:hidden}.card-head{padding:28px 32px 24px;border-bottom:1px solid var(--border)}.card-head h1{font-size:20px;font-weight:600;color:var(--text);margin-bottom:4px}.card-head .sub{font-size:13px;color:var(--text-muted);font-weight:400}.card-body{padding:24px 32px 32px}.field{margin-bottom:16px}.field label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:6px}.field input{display:block;width:100%;padding:9px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:14px;font-weight:400;outline:none;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none}.field input::placeholder{color:var(--text-dim)}.field input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #3b82f626}.btn-login{display:block;width:100%;margin-top:8px;padding:10px 16px;background:var(--primary);border:none;border-radius:var(--radius);color:var(--primary-fg);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,opacity .15s ease}.btn-login:hover:not(:disabled){background:var(--primary-dark)}.btn-login:disabled{opacity:.5;cursor:not-allowed}.err-msg{margin-top:12px;min-height:16px;font-size:13px;color:var(--error)}.btn-signout{display:none;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font);font-size:13px;font-weight:500;padding:6px 14px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.btn-signout:hover{border-color:#4b5563;background:var(--surface-2);color:var(--text)}#app-view{display:none;flex:1;flex-direction:column;overflow:hidden}.app-layout{display:flex;flex:1;overflow:hidden}.canvas-area{flex:1;position:relative;overflow:hidden;background:#0d0f14;transition:background .2s ease}.canvas-area.image-loaded{background:#000}.upload-zone{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:2px dashed var(--border);margin:32px;border-radius:var(--radius);transition:border-color .15s,background .15s}.upload-zone.drag-over{border-color:var(--primary);background:#3b82f60f}.upload-zone .upload-icon{font-size:32px;color:var(--text-dim);line-height:1}.upload-zone .upload-label{font-size:14px;font-weight:500;color:var(--text-muted)}.upload-zone .upload-sub{font-size:12px;color:var(--text-dim)}.upload-zone .upload-error{font-size:12px;color:var(--error);margin-top:4px}.canvas-wrap{position:absolute;inset:0}.canvas-wrap canvas{display:block;width:100%;height:100%;cursor:crosshair}.edit-overlay{position:absolute;inset:0;pointer-events:none}.edit-handle{position:absolute;width:12px;height:12px;border-radius:50%;background:#facc15;border:2px solid rgba(255,255,255,.8);cursor:grab;pointer-events:auto;box-shadow:0 1px 3px #0009}.edit-handle:active{cursor:grabbing}.sidebar{width:272px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:0}.sidebar-section{display:flex;flex-direction:column;gap:6px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border)}.sidebar-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.sidebar-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:4px}.btn-primary{display:block;width:100%;padding:9px 14px;background:var(--primary);border:none;border-radius:var(--radius);color:var(--primary-fg);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{display:block;width:100%;padding:8px 14px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:#4b5563;color:var(--text)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary.active{border-color:var(--primary);color:var(--primary)}.toggle-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-muted)}.toggle-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.analyze-status{font-size:12px;color:var(--error);padding:4px 0 8px}.metric-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--border)}.metric-row:last-child{border-bottom:none}.metric-label{font-size:12px;color:var(--text-muted)}.metric-value{font-size:13px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}
