:root{color-scheme:dark;--bg: #0f1115;--bg-elev: #151922;--bg-elev-2: #1c2130;--border: #252b3b;--text: #e7ecf5;--text-dim: #98a2b3;--accent: #4f8cff;--accent-hover: #6aa0ff;--danger: #ff5e6c;--warn: #ffb648;--ok: #4ade80}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.app__header{padding:18px 24px;border-bottom:1px solid var(--border);background:var(--bg-elev);display:flex;flex-direction:column;gap:4px}.app__header--compact{flex-direction:row;justify-content:space-between;align-items:center;padding:10px 16px}.app__header h1{margin:0;font-size:18px;font-weight:600}.app__subtitle{color:var(--text-dim);margin:4px 0 0;max-width:640px}.app__file{font-size:12px;color:var(--text-dim)}.app--empty{align-items:center;justify-content:center}.app--empty .app__header{border:none;background:transparent;text-align:center;margin-top:10vh}.app__layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px}.app__canvas{background:linear-gradient(var(--bg-elev),var(--bg-elev)),repeating-linear-gradient(45deg,rgba(255,255,255,.02) 0 10px,transparent 10px 20px);padding:16px;overflow:auto;display:flex;align-items:center;justify-content:center}.app__sidebar{border-left:1px solid var(--border);background:var(--bg-elev);display:flex;flex-direction:column;min-height:0}.uploader{width:min(520px,90vw);margin:24px auto 0;border:2px dashed var(--border);border-radius:16px;padding:48px 24px;text-align:center;cursor:pointer;background:var(--bg-elev);transition:border-color .15s,background .15s}.uploader:hover,.uploader--drag{border-color:var(--accent);background:var(--bg-elev-2)}.uploader__icon{font-size:36px;color:var(--accent);margin-bottom:8px}.uploader__title{font-size:16px;font-weight:600}.uploader__hint{color:var(--text-dim);margin-top:4px}.canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.canvas__svg{width:min(100%,100%);height:100%;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.canvas__svg svg{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 120px);background:#fff;border-radius:8px;box-shadow:0 6px 30px #00000059}.canvas__svg svg path[data-uid]{cursor:pointer;transition:filter .1s}.canvas__svg svg path[data-uid]:hover{filter:drop-shadow(0 0 4px rgba(79,140,255,.9))}.canvas__svg svg path[data-uid].is-selected{stroke:var(--accent)!important;stroke-width:3px!important;filter:drop-shadow(0 0 6px rgba(79,140,255,.9))}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.toolbar__opt{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:13px;-webkit-user-select:none;user-select:none}.toolbar__opt input{accent-color:var(--accent)}.btn{border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .12s,border-color .12s}.btn:hover{border-color:var(--accent)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{background:transparent}.card{padding:16px;border-bottom:1px solid var(--border)}.card__title{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:10px}.card--empty .card__hint{color:var(--text-dim)}.field{display:block;margin-bottom:12px}.field__label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:4px}.field__input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;outline:none;transition:border-color .12s}.field__input:focus{border-color:var(--accent)}.field__input--error{border-color:var(--danger)}.field__error{color:var(--danger);font-size:12px;margin-top:4px}.field__suggest{background:transparent;border:none;color:var(--accent);padding:4px 0 0;cursor:pointer;font-size:12px}.field__suggest:hover{text-decoration:underline}.field--checkbox{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:13px}.card__details{font-size:12px;color:var(--text-dim);margin-top:8px}.card__details summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.card__row{display:flex;gap:8px;padding:4px 0;border-top:1px solid var(--border)}.card__row-label{color:var(--text-dim);min-width:48px}.card__row--d code{word-break:break-all;font-size:11px;background:var(--bg);padding:4px 6px;border-radius:4px;display:block;max-height:140px;overflow:auto}.sector-list{flex:1;display:flex;flex-direction:column;min-height:0}.sector-list__header{padding:10px 16px;border-bottom:1px solid var(--border);color:var(--text-dim);font-size:12px;display:flex;gap:12px}.sector-list__meta{margin-left:auto}.sector-list__items{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.sector-item{display:flex;gap:10px;padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.sector-item:hover{background:var(--bg-elev-2)}.sector-item--active{background:#4f8cff1f;box-shadow:inset 3px 0 0 var(--accent)}.sector-item--muted{opacity:.5}.sector-item__index{color:var(--text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding-top:1px}.sector-item__body{min-width:0;flex:1}.sector-item__id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;display:flex;gap:8px;align-items:center}.sector-item__placeholder{color:var(--text-dim);font-style:italic;font-family:inherit}.sector-item__title{color:var(--text-dim);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{padding:1px 6px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.badge--error{background:#ff5e6c26;color:var(--danger)}.error{padding:10px 14px;background:#ff5e6c1a;color:var(--danger);border:1px solid rgba(255,94,108,.4);border-radius:8px;margin:12px auto;max-width:520px}.error--floating{position:fixed;bottom:16px;right:16px;max-width:420px;z-index:10}
