*{box-sizing:border-box;margin:0}:root{--bg: #14171c;--panel: #1d2229;--panel-border: #2c333d;--text: #e4e8ee;--text-dim: #8a94a3;--accent: #4a9eff;--pass: #3dbd6e;--warning: #e0a53c;--error: #e05c5c}html,body{height:100%}body{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--bg);color:var(--text)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--panel-border);background:var(--panel)}.privacy-note{padding:.35rem 1rem;color:var(--text-dim);font-size:.75rem;border-bottom:1px solid var(--panel-border)}.title{font-size:1.05rem;font-weight:600}.title-sub{color:var(--text-dim);font-weight:400;font-size:.9rem}.topbar-actions{display:flex;gap:.5rem;align-items:center}.btn{padding:.35rem .8rem;border:1px solid var(--panel-border);border-radius:6px;background:transparent;color:var(--text);font-size:.85rem;cursor:pointer}.btn:hover{border-color:var(--accent);color:var(--accent)}.lang-select{padding:.35rem .5rem;border:1px solid var(--panel-border);border-radius:6px;background:var(--panel);color:var(--text);font-size:.85rem}.layout{flex:1;display:grid;grid-template-columns:1fr minmax(280px,360px) minmax(220px,280px);min-height:0}.viewport{position:relative;min-width:0}.viewport canvas{display:block}.drop-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--text-dim);pointer-events:none;text-align:center;padding:1rem}.drop-hint.hidden{display:none}.drop-hint-icon{font-size:2.5rem}.drop-hint-small{font-size:.85rem;opacity:.7}.drop-overlay[hidden]{display:none}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#4a9eff26;border:2px dashed var(--accent);font-size:1.2rem;color:var(--accent);pointer-events:none;z-index:10}.panel{border-left:1px solid var(--panel-border);background:var(--panel);padding:1rem;overflow-y:auto}.controls-panel{background:var(--panel);border-left:1px solid var(--panel-border);padding:1rem;overflow-y:auto}.controls-panel h2{font-size:.95rem;margin-bottom:.75rem}.display-controls{display:grid;gap:.45rem;font-size:.82rem}.control-actions{display:flex;gap:.35rem;margin-top:.7rem;flex-wrap:wrap}#joint-controls{display:grid;gap:.7rem;margin-top:.8rem}.joint-control{display:grid;gap:.25rem;font-size:.78rem}.joint-control input[type=number]{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:.25rem}.source-location{border:0;padding:0;background:none;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit}.source-excerpt{margin-top:.35rem;padding:.45rem;overflow-x:auto;border-radius:4px;background:var(--bg);color:var(--text);white-space:pre;font-size:.72rem}.xacro-instructions{display:grid;gap:.65rem}.xacro-instructions code{display:block;padding:.55rem;overflow-x:auto;border-radius:4px;background:var(--bg)}.panel h2{font-size:.95rem;margin-bottom:.75rem}.model-summary{font-size:.82rem;color:var(--text-dim);padding:.5rem .6rem;border:1px solid var(--panel-border);border-radius:6px;margin-bottom:.75rem}.results-empty,.message-info{color:var(--text-dim);font-size:.85rem}.message-error{color:var(--error);font-size:.85rem}.check{border:1px solid var(--panel-border);border-radius:8px;padding:.55rem .65rem;margin-bottom:.5rem}.check-head{display:flex;align-items:center;gap:.5rem}.check-title{font-size:.85rem;font-weight:500}.badge{flex-shrink:0;font-size:.7rem;font-weight:600;padding:.1rem .45rem;border-radius:999px}.badge-pass{background:color-mix(in srgb,var(--pass) 20%,transparent);color:var(--pass)}.badge-warning{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.badge-error{background:color-mix(in srgb,var(--error) 20%,transparent);color:var(--error)}.check-findings{margin-top:.4rem;padding-left:1.1rem;font-size:.8rem;display:flex;flex-direction:column;gap:.2rem}.finding-pass{color:var(--text-dim)}.finding-warning{color:var(--warning)}.finding-error{color:var(--error)}@media (max-width: 800px){.layout{grid-template-columns:1fr;grid-template-rows:55vh auto auto}.panel,.controls-panel{border-left:none;border-top:1px solid var(--panel-border)}}
