/* ============================================================
   controls.css — classic UI widgets
   ============================================================ */

.pad { padding:10px; }
.row { display:flex; align-items:center; gap:8px; }
.col { display:flex; flex-direction:column; gap:8px; }
.spacer { flex:1 1 auto; }

/* Buttons */
.xbtn {
  font-family:var(--ui); font-size:11px; min-width:74px; padding:3px 12px;
  border:1px solid var(--btn-edge); border-radius:3px; color:#000; cursor:default;
  background:linear-gradient(180deg,var(--btn-1),var(--btn-2));
  box-shadow:inset 0 0 0 1px #fff; 
}
.xbtn:hover { border-color:#4b7bbf; box-shadow:inset 0 0 0 1px #fff, 0 0 3px #a9c6f0; }
.xbtn:active { background:linear-gradient(180deg,#dfe3e8,#eef1f4); box-shadow:inset 1px 1px 2px rgba(0,0,0,.2); }
.xbtn:disabled, .xbtn.disabled { color:#9aa0a6; text-shadow:1px 1px 0 #fff; }
.xbtn.default { border-color:#2a5aad; box-shadow:inset 0 0 0 1px #cfe0ff; }

/* Text fields */
.xinput, .xtext {
  font-family:var(--ui); font-size:11px; padding:2px 4px; color:#000;
  border:1px solid #7f9db9; background:#fff; border-radius:0;
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.12);
}
.xinput:focus, .xtext:focus { outline:1px dotted #316ac5; outline-offset:-3px; }
textarea.xtext { resize:none; }

/* Checkbox & radio */
.xcheck, .xradio { display:inline-flex; align-items:center; gap:6px; cursor:default; }
.xcheck input, .xradio input { position:absolute; opacity:0; width:0; height:0; }
.xcheck .box, .xradio .dot {
  width:13px; height:13px; border:1px solid #7f9db9; background:#fff;
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.15); display:inline-grid; place-content:center;
}
.xradio .dot { border-radius:50%; }
.xcheck input:checked + .box::after { content:""; width:8px; height:5px; margin-top:-2px;
  border-left:2px solid #1a5e1a; border-bottom:2px solid #1a5e1a; transform:rotate(-45deg); }
.xradio input:checked + .dot::after { content:""; width:6px; height:6px; border-radius:50%; background:#1a5e1a; }

/* Combobox (styled native select) */
.xselect {
  font-family:var(--ui); font-size:11px; padding:2px 22px 2px 5px; color:#000;
  border:1px solid #7f9db9; background:#fff; border-radius:0; appearance:none;
  background-image:linear-gradient(180deg,#f6f7f9,#dfe3e8);
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.1);
}
.xcombo { position:relative; display:inline-block; }
.xcombo::after { content:"▾"; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  font-size:9px; color:#33475e; pointer-events:none; }

/* Group box */
.groupbox { border:1px solid #b0c4de; border-radius:3px; padding:12px 10px 10px; position:relative; margin-top:8px; }
.groupbox > legend { position:absolute; top:-8px; left:8px; background:var(--face); padding:0 4px; color:#2a5aad; }

/* Progress bar (segmented, classic) */
.progress { height:16px; border:1px solid #7f9db9; background:#fff; padding:1px;
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.15); overflow:hidden; }
.progress > i { display:block; height:100%;
  background:repeating-linear-gradient(90deg,#3aa53a 0 8px, transparent 8px 11px);
  background-color:#3aa53a; background-blend-mode:screen; width:0; transition:width .2s; }

/* Status bar */
.statusbar { flex:0 0 auto; height:20px; display:flex; align-items:center; gap:0;
  border-top:1px solid #d6d2c2; background:var(--face); font-size:11px; }
.statusbar .cell { padding:2px 8px; border:1px solid #d6d2c2; border-left-color:#fff; border-top-color:#fff;
  height:100%; display:flex; align-items:center; }
.statusbar .cell.grow { flex:1 1 auto; }

/* Tabs */
.tabs { display:flex; gap:2px; padding-left:6px; margin-bottom:-1px; }
.tab { padding:3px 12px; border:1px solid #b0c4de; border-bottom:none; border-radius:4px 4px 0 0;
  background:linear-gradient(180deg,#f6f4ec,#e2ddca); }
.tab.active { background:var(--face); position:relative; z-index:1; }
.tabpane { border:1px solid #b0c4de; background:var(--face); padding:10px; }

/* Scrollbars (WebKit) */
.scroll { overflow:auto; }
.scroll::-webkit-scrollbar { width:16px; height:16px; }
.scroll::-webkit-scrollbar-track { background:#e9e6da; box-shadow:inset 1px 0 0 #cfcbbb; }
.scroll::-webkit-scrollbar-thumb {
  background:linear-gradient(90deg,#dfe3ea,#aebfd6); border:1px solid #7f9db9; border-radius:2px; }
.scroll::-webkit-scrollbar-thumb:hover { filter:brightness(1.06); }
.scroll::-webkit-scrollbar-button:single-button {
  background:linear-gradient(180deg,#f2f4f7,#cfd6df); border:1px solid #7f9db9; height:16px; width:16px; }
.scroll { scrollbar-width:thin; scrollbar-color:#aebfd6 #e9e6da; }

/* TreeView */
.tree { font-size:11px; padding:4px; }
.tree .node { display:flex; align-items:center; gap:4px; padding:1px 3px; border-radius:2px; white-space:nowrap; }
.tree .node:hover { background:var(--sel-soft); }
.tree .node.sel { background:var(--sel); color:#fff; }
.tree .node .tw { width:12px; text-align:center; color:#5a5a5a; }
.tree .node .ti { width:16px; height:16px; }
.tree .children { margin-left:14px; border-left:1px dotted #b7b3a3; padding-left:2px; }
.tree .children.collapsed { display:none; }

/* ListView (icons / details) */
.listview { flex:1 1 auto; background:#fff; }
.lv-icons { display:flex; flex-wrap:wrap; align-content:flex-start; gap:4px; padding:8px; }
.lv-item { width:74px; padding:6px 4px; text-align:center; border:1px solid transparent; border-radius:2px; }
.lv-item .li { width:32px; height:32px; margin:0 auto 3px; }
.lv-item .lt { font-size:11px; line-height:1.15; word-break:break-word; }
.lv-item:hover { background:var(--sel-soft); }
.lv-item.sel { background:var(--sel); color:#fff; }
.lv-details { width:100%; border-collapse:collapse; font-size:11px; }
.lv-details th { text-align:left; font-weight:400; background:linear-gradient(180deg,#fff,#e8e5d8);
  border:1px solid #d6d2c2; padding:2px 8px; position:sticky; top:0; }
.lv-details td { padding:2px 8px; border-bottom:1px solid #f0eee4; white-space:nowrap; }
.lv-details tr:hover td { background:var(--sel-soft); }
.lv-details tr.sel td { background:var(--sel); color:#fff; }

/* Toolbar (explorer) */
.toolbar { flex:0 0 auto; display:flex; align-items:center; gap:4px; padding:3px 6px;
  background:linear-gradient(180deg,#f6f4ec,#e6e2d4); border-bottom:1px solid #d0ccbc; }
.tbtn { display:flex; align-items:center; gap:4px; padding:3px 8px; border:1px solid transparent; border-radius:3px; }
.tbtn:hover { border-color:#a9c6f0; background:#e4eefc; }
.addr { display:flex; align-items:center; gap:4px; padding:2px 6px;
  background:linear-gradient(180deg,#f6f4ec,#e6e2d4); border-bottom:1px solid #d0ccbc; }
.addr .xinput { flex:1 1 auto; }

/* build 1783239820 */
