:root{--bg: #303030;--panel: #3a3a3a;--border: #555;--accent: #4a6dff;--text: #f0f0f0}*{box-sizing:border-box}html,body{height:100%;margin:0}body{display:flex;flex-direction:column;min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg);user-select:none}header{padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}header .row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}header label{font-size:.85rem}header strong{min-width:6.5rem;display:inline-block}button,select{font-family:inherit;font-size:.85rem;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.3rem .6rem;cursor:pointer}button:hover:not(:disabled),select:hover{background:#474747}button:disabled{opacity:.45;cursor:not-allowed}#applyBtn{background:var(--accent);border-color:#5b7bff;color:#fff;font-weight:500}#applyBtn:hover{background:#5b7bff}main{flex:1;position:relative;background:#000;min-height:0}canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}canvas:focus{outline:0}footer{border-top:1px solid var(--border);background:var(--bg)}div.footer{width:100%}table.footer{width:100%;table-layout:fixed;font-size:.8rem;border-collapse:collapse}table.footer th{font-weight:400;text-align:left;padding:4px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:24px;vertical-align:middle}table.footer th:nth-child(2){text-align:center}table.footer th:last-child{text-align:right}.loading-circle{display:inline-block;width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite;vertical-align:middle;visibility:hidden}#statusMsg{font-size:.8rem;color:#b9c4ff}@keyframes spin{to{transform:rotate(360deg)}}.hidden,[hidden]{display:none!important}dialog{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.1rem 1.3rem;min-width:18rem;box-shadow:0 10px 40px #00000080}dialog::backdrop{background:#00000073}dialog p{margin:.5rem 0;display:flex;align-items:center;gap:.5rem}dialog h3{margin:0 0 .5rem}dialog a{color:#9ab0ff}dialog button{margin-top:.8rem;margin-right:.5rem}
