/* AYOX CAD - SolidWorks-style theme */
* { margin:0; padding:0; box-sizing:border-box; }
html,body { height:100%; font-family:"Segoe UI",Arial,sans-serif; overflow:hidden; }
#app { display:flex; flex-direction:column; height:100vh; }

/* ---- Menu bar ---- */
#menubar { display:flex; align-items:center; gap:18px; height:34px;
  background:#e8e8e8; border-bottom:1px solid #b5b5b5; padding:0 10px;
  font-size:13px; color:#333; }
.logo { font-size:14px; letter-spacing:.5px; margin-right:12px; }
.logo b { color:#c00; }
.menu-item { padding:2px 4px; cursor:default; }
.menu-item:hover { background:#d4d4d4; }
.part-name { margin-left:auto; font-weight:600; color:#555; }

/* ---- CommandManager ---- */
#commandmanager { background:#f4f4f4; border-bottom:1px solid #b5b5b5; }
#cm-tabs { display:flex; gap:2px; padding:3px 8px 0 8px; }
.cm-tab { padding:4px 14px; font-size:13px; color:#333; cursor:default;
  border:1px solid transparent; border-bottom:none; }
.cm-tab.active { background:#fff; border-color:#b5b5b5; font-weight:600;
  color:#c00; border-top:2px solid #c00; }
#cm-commands { display:flex; gap:4px; background:#fff; padding:5px 8px;
  border-top:1px solid #d0d0d0; }
.cmd { font-size:12px; padding:6px 12px; border:1px solid #d0d0d0;
  background:linear-gradient(#fdfdfd,#ececec); border-radius:3px; color:#333; }
.cmd:disabled { color:#aaa; background:#f7f7f7; cursor:not-allowed; }
.cmd:not(:disabled):hover { border-color:#c00; color:#c00; cursor:pointer; }
.cmd:not(:disabled):active { background:#e0e0e0; }

/* ---- Main ---- */
#main { flex:1; display:flex; min-height:0; }

/* ---- FeatureManager ---- */
#featuremanager { width:280px; background:#f4f4f4; border-right:1px solid #b5b5b5;
  display:flex; flex-direction:column; font-size:13px; }
.fm-header { padding:6px 10px; font-weight:600; color:#333;
  border-bottom:1px solid #d0d0d0; background:#ebebeb; }
.fm-tree { flex:1; overflow-y:auto; padding:6px 4px; }
.fm-node { padding:3px 8px 3px 16px; color:#333; cursor:default; }
.fm-node:hover { background:#e0e0e0; }
.fm-node.open { font-weight:600; }
.fm-tabs { display:flex; border-top:1px solid #d0d0d0; background:#ebebeb; }
.fm-tabs span { flex:1; text-align:center; padding:5px 0; font-size:12px;
  color:#555; cursor:default; }
.fm-tabs span:first-child { color:#c00; font-weight:600; }

/* Feature tree items */
.fm-item { display:flex; align-items:center; gap:7px; padding:3px 8px 3px 34px;
  color:#222; cursor:default; user-select:none; }
.fm-item:hover { background:#e0e0e0; }
.fm-item.selected { background:#cfe3f7; }
.fm-item .ic { width:14px; height:14px; flex:none; }
.ic-sketch { border:2px solid #1a6fd4; border-radius:2px; }
.ic-boss { background:linear-gradient(135deg,#bdbdbd 60%,#8f8f8f); border-radius:2px; }

/* ---- PropertyManager ---- */
#propertymanager { width:300px; background:#fff; border-right:1px solid #b5b5b5;
  display:flex; flex-direction:column; font-size:13px; }
#propertymanager.hidden { display:none; }
.pm-header { display:flex; align-items:center; padding:8px 10px;
  font-weight:600; color:#c00; border-bottom:1px solid #d0d0d0; }
.pm-header .pm-title { flex:1; }
.pm-btn { width:26px; height:26px; margin-left:6px; border:1px solid #999;
  border-radius:3px; font-size:14px; font-weight:700; cursor:pointer; background:#fff; }
.pm-ok { color:#1a7a1a; } .pm-ok:hover { background:#e2f3e2; }
.pm-cancel { color:#c00; } .pm-cancel:hover { background:#fbe4e4; }
.pm-body { flex:1; overflow-y:auto; padding:10px; }
.pm-group { border:1px solid #d0d0d0; margin-bottom:12px; }
.pm-group-title { background:#f0f0f0; padding:5px 8px; font-weight:600;
  border-bottom:1px solid #d0d0d0; }
.pm-row { display:flex; align-items:center; gap:8px; padding:6px 8px; }
.pm-row label { width:110px; color:#333; }
.pm-row input, .pm-row select { flex:1; padding:4px 6px; border:1px solid #b0b0b0;
  border-radius:2px; font-size:12px; }
.pm-tools { display:flex; gap:5px; padding:8px; flex-wrap:wrap; }
.pm-tool { font-size:12px; padding:5px 10px; border:1px solid #c9c9c9;
  background:#f7f7f7; border-radius:3px; cursor:pointer; }
.pm-tool.active { border-color:#c00; color:#c00; background:#fff; font-weight:600; }
.pm-note { padding:6px 8px; color:#777; font-style:italic; font-size:12px; }

/* ---- Viewport ---- */
#viewport { flex:1; position:relative; background:#1a1d29; }
#viewport.sketching { cursor:crosshair; }
#viewport canvas { display:block; }
#view-toolbar { position:absolute; top:10px; right:10px; display:flex;
  flex-direction:column; gap:4px; z-index:10; }
#view-toolbar button { font-size:11px; padding:5px 10px; border:1px solid #555;
  background:rgba(40,44,58,.9); color:#ddd; border-radius:3px; cursor:pointer; }
#view-toolbar button:hover { background:rgba(70,76,96,.9); color:#fff; }
#viewport-hint { position:absolute; bottom:10px; left:50%;
  transform:translateX(-50%); color:#8a8fa3; font-size:12px; z-index:10;
  background:rgba(0,0,0,.35); padding:4px 12px; border-radius:10px; white-space:nowrap; }

/* ---- Status bar ---- */
#statusbar { display:flex; justify-content:space-between; height:26px;
  background:#e8e8e8; border-top:1px solid #b5b5b5; padding:4px 12px;
  font-size:12px; color:#444; }
