/* DVTV 経理ファイル v1.7.0 — compact 55-server SF console + selected ZIP.
 * Widget rules and explicitly tagged leading ancestors only; no fonts or image requests.
 * Color describes an operation, never grants permission. [hidden] remains authoritative.
 */
.dvtv-nf {
  --dnf-ink:#e6f3ff; --dnf-muted:#9cb8ca; --dnf-line:#24465a;
  --dnf-bg:#07121d; --dnf-bg-soft:#0b1b29; --dnf-bg-head:#102a3a;
  --dnf-hover:#102e40; --dnf-current:#123d54; --dnf-tree-bg:#081723;
  --dnf-blue:#43ddff; --dnf-blue-dark:#b4f4ff;
  --dnf-cyan:#43ddff; --dnf-green:#4cf0b3; --dnf-gold:#ffd36c;
  --dnf-purple:#c59aff; --dnf-folder:#7ab2ff;
  position:relative; isolation:isolate; color-scheme:dark;
  width:100%; max-width:100%; min-width:0; margin:10px 0; padding:0;
  border:1px solid #34839c; border-radius:6px; overflow:hidden;
  color:var(--dnf-ink); background:var(--dnf-bg);
  box-shadow:0 0 0 1px #43ddff14,0 0 16px #28bde51b,inset 0 0 20px #27cfff04;
  font:14px/1.5 system-ui,-apple-system,"Segoe UI","Noto Sans JP","Hiragino Sans","Meiryo",sans-serif;
}
.dvtv-nf *, .dvtv-nf *::before, .dvtv-nf *::after {box-sizing:border-box}
.dvtv-nf [hidden], .dnf-settings [hidden] {display:none!important}
.dvtv-nf button, .dvtv-nf input, .dvtv-nf select {
  font-family:inherit; font-size:13px; line-height:1.4; letter-spacing:normal;
  margin:0; max-width:100%; box-shadow:none; text-transform:none;
}
.dvtv-nf button {appearance:none; min-width:0; height:auto}
.dvtv-nf p, .dvtv-nf form {margin:0}
.dvtv-nf a {text-decoration:none}
.dvtv-nf :is(button,a,input,select):focus-visible {
  outline:2px solid #ecfbff!important; outline-offset:3px; border-radius:3px;
}
.dvtv-nf :is(button,input,select):disabled {
  opacity:.4; cursor:not-allowed; box-shadow:none!important; filter:none!important;
}
.dvtv-nf ::-webkit-scrollbar {width:9px; height:9px}
.dvtv-nf ::-webkit-scrollbar-track {background:#081520}
.dvtv-nf ::-webkit-scrollbar-thumb {background:#2e5368; border:2px solid #081520; border-radius:6px}
.dvtv-nf {scrollbar-color:#2e5368 #081520; scrollbar-width:thin}

/* Compact header: no banner artwork and no full-height decorative sections. */
.dvtv-nf .dnf-head {
  position:relative; display:flex; align-items:center; justify-content:space-between;
  min-height:64px; gap:10px 18px; padding:9px 16px; color:var(--dnf-ink);
  border-bottom:1px solid #326780;
  background:
    linear-gradient(90deg,#0a2034ee,#09192450 55%,#071724ef),
    repeating-linear-gradient(0deg,transparent 0 19px,#48d6ff10 19px 20px),
    repeating-linear-gradient(90deg,transparent 0 27px,#48d6ff0e 27px 28px),#071522;
}
.dvtv-nf .dnf-head::before, .dvtv-nf .dnf-head::after {
  content:''; position:absolute; top:5px; bottom:5px; width:12px;
  border-top:1px solid #4bd9ff; border-bottom:1px solid #4bd9ff; pointer-events:none;
}
.dvtv-nf .dnf-head::before {left:5px; border-left:1px solid #4bd9ff}
.dvtv-nf .dnf-head::after {right:5px; border-right:1px solid #4bd9ff}
.dvtv-nf .dnf-title {display:flex; align-items:center; gap:11px; min-width:0; flex-shrink:0}
.dvtv-nf .dnf-title-icon {position:relative; width:29px; height:28px; flex:none; filter:drop-shadow(0 0 6px #32dbff55)}
.dvtv-nf .dnf-title-icon::before {content:''; position:absolute; left:0; top:4px; width:13px; height:6px; border-radius:2px 2px 0 0; background:#8ee8ff}
.dvtv-nf .dnf-title-icon::after {content:''; position:absolute; left:0; top:9px; width:28px; height:19px; border-radius:2px; background:linear-gradient(135deg,#66ddff,#2d91bd); border:1px solid #a2edff}
.dvtv-nf .dnf-head h2 {
  font-size:25px!important; font-weight:750!important; line-height:1.18!important;
  letter-spacing:.08em!important; color:#e1f4ff!important;
  margin:0!important; padding:0!important; background:none!important; border:0!important;
  box-shadow:none!important; text-shadow:0 0 15px #5ac4ff4d;
}
.dvtv-nf .dnf-head h2::before, .dvtv-nf .dnf-head h2::after {display:none!important}
.dvtv-nf .dnf-kicker {display:block; margin-top:3px; font:10px/1.25 Consolas,"SFMono-Regular",monospace; letter-spacing:.2em; color:#8cbcd2}
.dvtv-nf .dnf-head-meta {display:flex; align-items:center; justify-content:flex-end; gap:16px; min-width:0}
.dvtv-nf .dnf-link-status {display:inline-flex; align-items:center; gap:7px; white-space:nowrap; font-size:12px; color:var(--dnf-muted)}
.dvtv-nf .dnf-status-dot {width:7px; height:7px; flex:none; border-radius:50%; background:#edc061; box-shadow:0 0 9px #edc06155}
.dvtv-nf .dnf-link-status[data-state="ready"] .dnf-status-dot {background:#4cf0b3; box-shadow:0 0 9px #4cf0b377}
.dvtv-nf .dnf-link-status[data-state="error"] {color:#ffabb5}
.dvtv-nf .dnf-link-status[data-state="error"] .dnf-status-dot {background:#ff6e87; box-shadow:0 0 9px #ff6e8755}
.dvtv-nf .dnf-badge {display:inline-flex; align-items:center; padding:5px 8px; border:1px solid #325a6f; border-radius:3px; background:#0e2a3b; color:#bfe9fc; white-space:nowrap; font-size:11px; font-weight:650; letter-spacing:.03em}
.dvtv-nf .dnf-server-mark {display:flex; flex-direction:column; align-items:center; padding-left:14px; border-left:1px solid #35647a; line-height:1; color:#78c7eb}
.dvtv-nf .dnf-server-mark b {font:bold 32px/.9 Consolas,monospace; letter-spacing:.02em; text-shadow:0 0 9px #43ddff40}
.dvtv-nf .dnf-server-mark small {font:8px/1.25 Consolas,monospace; letter-spacing:.15em; margin-top:3px}

/* Toolbar remains a separate, dense row. */
.dvtv-nf .dnf-head-tools {
  display:flex; flex-wrap:wrap; align-items:center; gap:7px;
  min-width:0; padding:10px 12px; border-bottom:1px solid #285468;
  background:linear-gradient(180deg,#0c202e,#091923);
}
.dvtv-nf .dnf-search {position:relative; display:flex; align-items:center; flex:1 1 200px; min-width:155px; max-width:none; margin:0}
.dvtv-nf .dnf-search input {
  appearance:none; width:100%; min-width:0; height:34px; border:1px solid #376880; border-radius:3px;
  background:#061522; color:#e9f8ff; padding:5px 30px 5px 32px; font-size:13px;
}
.dvtv-nf .dnf-search input::placeholder {color:#9bb7c9; opacity:1}
.dvtv-nf .dnf-search input:focus {border-color:#53ddff; background:#0b2130; outline:none; box-shadow:0 0 8px #43ddff30}
.dvtv-nf .dnf-search input::-webkit-search-cancel-button {appearance:none}
.dvtv-nf .dnf-search .dnf-ico-search {position:absolute; left:10px; top:50%; transform:translateY(-50%); pointer-events:none; color:#83c8e5; margin:0}
.dvtv-nf .dnf-search-clear {position:absolute; right:5px; top:50%; transform:translateY(-50%); width:24px; height:24px; padding:0; border:0; border-radius:3px; background:transparent; color:#d5eefc; cursor:pointer; font-size:19px; line-height:1}
.dvtv-nf .dnf-search-clear:hover {background:#224558}
.dvtv-nf .dnf-head-tools select {
  appearance:none; height:34px; max-width:190px; min-width:0; padding:4px 27px 4px 9px;
  border:1px solid #376880; border-radius:3px; background-color:#0b2030; color:#d4eaf7; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a9d9ee' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 9px center;
}
.dvtv-nf .dnf-head-tools select option {background:#102535; color:#e2f3ff}
.dvtv-nf .dnf-head-tools .dnf-tree-toggle {display:none}

/* Tinted buttons with luminous edges, not text glow. */
.dvtv-nf .dnf-btn {
  --dnf-btn-rgb:67,221,255; --dnf-btn-edge:#43ddff; --dnf-btn-text:#d5f7ff;
  appearance:none; display:inline-flex; align-items:center; justify-content:center;
  min-height:33px; padding:5px 10px; border:1px solid var(--dnf-btn-edge); border-radius:3px;
  background:linear-gradient(180deg,rgba(var(--dnf-btn-rgb),.2),rgba(var(--dnf-btn-rgb),.09)),#081622;
  color:var(--dnf-btn-text)!important; text-decoration:none!important;
  font-family:inherit; font-size:13px; font-weight:650; line-height:1.3;
  white-space:nowrap; cursor:pointer; box-shadow:inset 0 0 7px rgba(var(--dnf-btn-rgb),.13),0 0 5px rgba(var(--dnf-btn-rgb),.24);
  transition:background-color .15s,box-shadow .15s,border-color .15s;
}
.dvtv-nf .dnf-btn:hover:not(:disabled) {
  background:linear-gradient(180deg,rgba(var(--dnf-btn-rgb),.31),rgba(var(--dnf-btn-rgb),.16)),#0c2030;
  box-shadow:inset 0 0 9px rgba(var(--dnf-btn-rgb),.23),0 0 10px rgba(var(--dnf-btn-rgb),.4);
  color:#fff!important;
}
.dvtv-nf .dnf-btn:active:not(:disabled) {background:rgba(var(--dnf-btn-rgb),.24)}
.dvtv-nf .dnf-primary {--dnf-btn-rgb:76,240,179; --dnf-btn-edge:#4cf0b3; --dnf-btn-text:#c9ffeb}
.dvtv-nf .dnf-folder-open, .dvtv-nf .dnf-folder-panel .dnf-primary, .dvtv-nf .dnf-open-folder, .dvtv-nf .dnf-tree-toggle {--dnf-btn-rgb:122,178,255; --dnf-btn-edge:#7ab2ff; --dnf-btn-text:#dbeaff}
.dvtv-nf .dnf-download {--dnf-btn-rgb:255,211,108; --dnf-btn-edge:#edbe53; --dnf-btn-text:#fff0c3}
.dvtv-nf .dnf-copy {--dnf-btn-rgb:197,154,255; --dnf-btn-edge:#ba8ff7; --dnf-btn-text:#efdcff}
.dvtv-nf .dnf-mini {min-height:28px; padding:3px 7px; font-size:12px}
.dvtv-nf .dnf-ico {display:inline-block; flex:none; width:15px; height:15px; margin-right:5px; vertical-align:-2px; background:currentColor; -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat}

.dvtv-nf .dnf-ico-search{--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='11' cy='11' r='7' fill='none' stroke='black' stroke-width='2.4'/><path d='M16.5 16.5L22 22' stroke='black' stroke-width='2.4' stroke-linecap='round'/></svg>");margin:0}
.dvtv-nf .dnf-ico-refresh{--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 12a8 8 0 1 1-2.3-5.7' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/><path d='M20 4v5h-5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>")}
.dvtv-nf .dnf-ico-upload{--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 16V4M6 10l6-6 6 6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/><path d='M4 20h16' stroke='black' stroke-width='2.4' stroke-linecap='round'/></svg>")}
.dvtv-nf .dnf-ico-newfolder{--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z' fill='none' stroke='black' stroke-width='2.2'/><path d='M12 10v6M9 13h6' stroke='black' stroke-width='2.2' stroke-linecap='round'/></svg>")}
.dvtv-nf .dnf-ico-tree{--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 6h16M4 12h10M4 18h13' stroke='black' stroke-width='2.4' stroke-linecap='round'/></svg>")}
.dvtv-nf .dnf-ico-download{--m:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203v12m-5-5%205%205%205-5M4%2017v4h16v-4%27%2F%3E%3C%2Fsvg%3E")} 
.dvtv-nf .dnf-ico-view{--m:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E")} 
.dvtv-nf .dnf-ico-link{--m:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m10%2013%204-4m-6%206-1%201a4%204%200%200%201-6-6l4-4a4%204%200%200%201%206%200m2%203%201-1a4%204%200%200%201%206%206l-4%204a4%204%200%200%201-6%200%27%20transform%3D%27translate%281%200%29%27%2F%3E%3C%2Fsvg%3E")} 
.dvtv-nf .dnf-ico-folder{--m:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207V5h6l2%202h10v13H3V7Z%27%2F%3E%3C%2Fsvg%3E")} 
.dvtv-nf .dnf-ico-lock{--m:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%275%27%20y%3D%2710%27%20width%3D%2714%27%20height%3D%2711%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M8%2010V7a4%204%200%200%201%208%200v3m-4%205v2%27%2F%3E%3C%2Fsvg%3E")} 

/* Two-pane explorer. Only populated content determines height. */
.dvtv-nf .dnf-body {position:relative; display:flex; align-items:stretch; min-height:260px; min-width:0}
.dvtv-nf .dnf-tree {display:none; flex:none; flex-direction:column; width:222px; min-width:0; overflow:hidden; background:var(--dnf-tree-bg); border-right:1px solid #2d6077}
.dvtv-nf.dnf-tree-open .dnf-tree {display:flex}
.dvtv-nf .dnf-tree-head {display:flex; align-items:center; justify-content:space-between; min-height:37px; padding:6px 10px; border-bottom:1px solid var(--dnf-line); color:#b6eafb; background:#102535; font-size:13px; font-weight:700; letter-spacing:.02em}
.dvtv-nf .dnf-tree-head>span {display:flex; align-items:center}
.dvtv-nf .dnf-tree-close, .dvtv-nf .dnf-panel-close {appearance:none; border:1px solid #36596e; border-radius:3px; width:25px; height:25px; padding:0; background:#102738; color:#c8e7f8; font-size:20px; line-height:1; cursor:pointer}
.dvtv-nf .dnf-tree-close {display:none}
.dvtv-nf .dnf-tree-close:hover, .dvtv-nf .dnf-panel-close:hover {border-color:#ff8199; color:#ffd1d9; background:#371d2b}
.dvtv-nf .dnf-tree-root, .dvtv-nf .dnf-node-children {list-style:none!important; margin:0!important; padding:0!important}
.dvtv-nf .dnf-tree-root {flex:1; overflow:auto; padding:8px 6px 10px!important; max-height:700px}
.dvtv-nf .dnf-node-children {padding-left:14px!important; position:relative}
.dvtv-nf .dnf-node-children::before {content:''; position:absolute; left:11px; top:0; bottom:6px; border-left:1px solid #294758}
.dvtv-nf .dnf-node {margin:0!important; padding:0!important; list-style:none!important}
.dvtv-nf .dnf-node::before {display:none!important}
.dvtv-nf .dnf-node-row {display:flex; align-items:center; gap:1px; padding:1px 2px 1px 0; min-height:29px; border:1px solid transparent; border-radius:3px}
.dvtv-nf .dnf-node-row:hover {background:var(--dnf-hover)}
.dvtv-nf .dnf-node-row.dnf-node-current {background:linear-gradient(90deg,#0e4760,#102d41); border-color:#45c7ef; box-shadow:inset 3px 0 0 #62dcff,0 0 6px #29c4ff26}
.dvtv-nf .dnf-node-toggle {flex:none; width:18px; height:24px; border:0; border-radius:3px; padding:0; background:transparent; color:#85b9ce; cursor:pointer; position:relative}
.dvtv-nf .dnf-node-toggle::before {content:''; position:absolute; left:6px; top:8px; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); transition:transform .15s}
.dvtv-nf .dnf-node[aria-expanded="true"]>.dnf-node-row>.dnf-node-toggle::before {transform:rotate(45deg); top:6px}
.dvtv-nf .dnf-node-leaf>.dnf-node-row>.dnf-node-toggle {visibility:hidden}
.dvtv-nf .dnf-node-loading>.dnf-node-row>.dnf-node-toggle::before {border-radius:50%; border:1.5px solid #43ddff; border-top-color:transparent; animation:dnf-spin .9s linear infinite}
.dvtv-nf .dnf-node-label {display:flex; flex:1; align-items:center; gap:6px; min-width:0; border:0; border-radius:3px; padding:2px 4px 2px 1px; background:transparent; color:#c4dfef; font-size:13px; font-weight:550; text-align:left; line-height:1.4; cursor:pointer}
.dvtv-nf .dnf-node-name {flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.dvtv-nf .dnf-node-current .dnf-node-label {color:#e0f7ff; font-weight:700}
.dvtv-nf .dnf-node-top>.dnf-node-row>.dnf-node-label {font-weight:700; font-size:14px}
.dvtv-nf .dnf-node-icon {flex:none; width:17px; height:14px; position:relative}
.dvtv-nf .dnf-node-icon::before {content:''; position:absolute; left:0; top:0; width:7px; height:4px; border-radius:2px 2px 0 0; background:#80a9c3}
.dvtv-nf .dnf-node-icon::after {content:''; position:absolute; left:0; top:3px; width:17px; height:11px; border-radius:1px 2px 2px 2px; background:linear-gradient(#a7cde2,#638da8)}
.dvtv-nf .dnf-node-current .dnf-node-icon::after {background:#42ceee}
.dvtv-nf .dnf-node-more {font-size:12px; color:var(--dnf-muted); padding:3px 6px!important; list-style:none!important}
.dvtv-nf .dnf-flag {display:inline-block; flex:none; width:14px; height:14px; background:currentColor; -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat}

.dvtv-nf .dnf-flag-upload{color:#4cf0b3;--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9.5' fill='none' stroke='black' stroke-width='2.6'/><path d='M12 17V8M8.5 11.5L12 8l3.5 3.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/></svg>")}
.dvtv-nf .dnf-flag-lock{color:#ffd36c;--m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='5' y='10' width='14' height='11' rx='2' fill='black'/><path d='M8 10V7a4 4 0 0 1 8 0v3' fill='none' stroke='black' stroke-width='2.4'/></svg>")}
.dvtv-nf .dnf-tree-legend {display:flex; flex-wrap:wrap; gap:10px; padding:8px 10px; border-top:1px solid var(--dnf-line); color:var(--dnf-muted); font-size:11px}
.dvtv-nf .dnf-tree-legend span {display:inline-flex; align-items:center; gap:4px}
.dvtv-nf .dnf-main {display:flex; flex:1; flex-direction:column; min-width:0; background:var(--dnf-bg)}
.dvtv-nf .dnf-breadcrumb {display:flex; align-items:center; flex-wrap:wrap; gap:2px; min-width:0; min-height:37px; padding:5px 10px; border-bottom:1px solid var(--dnf-line); background:#0b1f2d; font-size:13px}
.dvtv-nf .dnf-separator {padding:0 3px; color:#608ba0}
.dvtv-nf .dnf-crumb {border:1px solid transparent; border-radius:3px; padding:2px 5px; background:transparent; color:#a0d7ee; font-size:13px; font-weight:600; line-height:1.4; text-align:left; overflow-wrap:anywhere; cursor:pointer}
.dvtv-nf .dnf-crumb:hover {background:#153649; color:#dff8ff}
.dvtv-nf .dnf-crumb.dnf-current {border-color:#38667c; background:#143244; color:#e3f6ff; font-weight:650; cursor:default}
.dvtv-nf .dnf-crumb-home::before {content:''; display:inline-block; width:13px; height:10px; margin-right:6px; vertical-align:-1px; background:#78b7d3; border-radius:1px 2px 2px 2px}

/* Real table cells keep every column and row aligned. */
.dvtv-nf .dnf-table-wrap {position:relative; flex:1; min-width:0; overflow:auto; margin:0; max-height:720px}
.dvtv-nf .dnf-table {table-layout:auto; border-collapse:collapse; width:100%; min-width:720px; margin:0!important; border:0!important; background:var(--dnf-bg); font-size:14px; line-height:1.45}
.dvtv-nf .dnf-table th {position:sticky; top:0; z-index:1; padding:8px 10px; border:0!important; border-bottom:1px solid #41708a!important; border-right:1px solid #213f51!important; background:#123044!important; color:#bfe8fa!important; text-align:left; font-size:12px; font-weight:700; letter-spacing:.03em; white-space:nowrap}
.dvtv-nf .dnf-table th:last-child {border-right:0!important}
.dvtv-nf .dnf-table th.dnf-th-size {text-align:right}
.dvtv-nf .dnf-table th.dnf-th-ops {text-align:center}
.dvtv-nf .dnf-table td {display:table-cell; padding:7px 10px; border:0!important; border-bottom:1px solid #203c4e!important; border-right:1px solid #152e3e!important; background:transparent; color:var(--dnf-ink); vertical-align:middle; height:43px; line-height:1.4}
.dvtv-nf .dnf-table td:last-child {border-right:0!important}
.dvtv-nf .dnf-table tbody tr:nth-child(even) {background:#0b1b28}
.dvtv-nf .dnf-table tbody tr:nth-child(odd) {background:#081621}
.dvtv-nf .dnf-table tbody tr:hover {background:#113147}
.dvtv-nf .dnf-table tbody tr:focus-within {background:#113147}
.dvtv-nf .dnf-table .dnf-name {min-width:215px; width:100%; font-weight:600}
.dvtv-nf .dnf-name-content {display:flex; align-items:center; gap:10px; min-width:0}
.dvtv-nf .dnf-name-text {display:flex; align-items:center; flex-wrap:wrap; gap:3px 8px; min-width:0}
.dvtv-nf .dnf-name .dnf-crumb, .dvtv-nf .dnf-filename {display:inline; padding:0; border:0; color:#e0f2ff!important; background:transparent!important; font-size:14px; font-weight:550; line-height:1.45; text-decoration:none!important; overflow-wrap:anywhere; word-break:normal}
.dvtv-nf .dnf-name .dnf-crumb:hover, .dvtv-nf .dnf-filename:hover {color:#7de5ff!important; text-decoration:underline!important}
.dvtv-nf .dnf-name-flags {display:inline-flex; flex-wrap:wrap; gap:4px; min-width:0}
.dvtv-nf .dnf-chip {display:inline-block; border:1px solid transparent; border-radius:4px; padding:1px 5px; font-size:10px; font-weight:650; line-height:1.5; overflow-wrap:anywhere}
.dvtv-nf .dnf-chip-upload {background:#0b352d; color:#90f4c9; border-color:#288d6e}
.dvtv-nf .dnf-chip-lock {background:#342d17; color:#f4d897; border-color:#8d7334}
.dvtv-nf .dnf-type {display:inline-flex; align-items:center; justify-content:center; flex:none; width:31px; height:29px; border:1px solid #52768e; border-radius:3px; background:#183448; color:#c4ddeb; font:bold 9px/1.2 system-ui,sans-serif; letter-spacing:.02em}
.dvtv-nf .dnf-type-pdf {background:#3c222c; color:#ffb7bd; border-color:#aa5262}
.dvtv-nf .dnf-type-sheet {background:#103b30; color:#9bf1c0; border-color:#398464}
.dvtv-nf .dnf-type-doc {background:#16385b; color:#b8daff; border-color:#487bae}
.dvtv-nf .dnf-type-slide {background:#492d1e; color:#ffcfab; border-color:#ae7348}
.dvtv-nf .dnf-type-image {background:#30284b; color:#dbc4ff; border-color:#7a65a6}
.dvtv-nf .dnf-type-archive {background:#383322; color:#e7d7a4; border-color:#8c7d49}
.dvtv-nf .dnf-type-text {background:#20333d; color:#c2d6e0; border-color:#587684}
.dvtv-nf .dnf-type-folder {position:relative; border:0; background:transparent; font-size:0}
.dvtv-nf .dnf-type-folder::before {content:''; position:absolute; top:5px; left:2px; width:12px; height:6px; border-radius:2px 2px 0 0; background:#ffce6a}
.dvtv-nf .dnf-type-folder::after {content:''; position:absolute; top:9px; left:2px; width:27px; height:17px; border:1px solid #ffdc8c; border-radius:2px; background:linear-gradient(135deg,#f7c85b,#c8973a); box-shadow:0 0 6px #f7c85b17}
.dvtv-nf .dnf-modified {white-space:nowrap; color:#b5cddd!important; font-size:12px!important; font-variant-numeric:tabular-nums}
.dvtv-nf .dnf-size {white-space:nowrap; text-align:right; color:#b5cddd!important; font-size:12px!important; font-variant-numeric:tabular-nums}
.dvtv-nf .dnf-actions {display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:nowrap}
.dvtv-nf .dnf-actions .dnf-ico {width:13px; height:13px; margin-right:4px}
.dvtv-nf .dnf-table .dnf-empty {height:auto; padding:35px 14px; text-align:center; color:var(--dnf-muted)}
.dvtv-nf .dnf-bottom {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; padding:7px 10px; border-top:1px solid #346078; background:#0d2332; color:#b6cfde; font-size:12px; min-height:42px}
.dvtv-nf .dnf-updated {margin-left:auto; color:#92b4c6; font-variant-numeric:tabular-nums}
.dvtv-nf .dnf-pages {display:flex; align-items:center; gap:7px; font-size:12px; font-variant-numeric:tabular-nums}
.dvtv-nf .dnf-page-number {color:#d0edfa; min-width:34px; text-align:center}
.dvtv-nf .dnf-pages button {min-height:27px; min-width:27px; padding:2px 7px; font-size:19px; line-height:1}
.dvtv-nf.dnf-busy .dnf-table {opacity:.5; pointer-events:none}
.dvtv-nf.dnf-busy .dnf-refresh .dnf-ico {animation:dnf-spin 1.1s linear infinite}
@keyframes dnf-spin {to {transform:rotate(360deg)}}

/* Panels are closed until requested; no permanent upload block. */
.dvtv-nf .dnf-panel {margin:9px 10px; border:1px solid #338e78; border-radius:4px; background:#0b2528; padding:10px 12px; box-shadow:0 0 8px #4cf0b31a}
.dvtv-nf .dnf-folder-panel {border-color:#547ea8; background:#0d2236; box-shadow:0 0 8px #7ab2ff1a}
.dvtv-nf .dnf-panel-head {display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; font-size:14px; color:#d4f9ec}
.dvtv-nf .dnf-folder-panel .dnf-panel-head {color:#d1e5ff}
.dvtv-nf .dnf-upload-destination {font-size:13px; font-weight:650; color:#d8edf6; overflow-wrap:anywhere}
.dvtv-nf .dnf-upload-privacy {font-size:12px!important; color:#a4e6ce; margin:2px 0 9px!important}
.dvtv-nf .dnf-dropzone {position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:14px 12px; margin:0; border:1px dashed #4ba28a; border-radius:4px; background:#09201f; text-align:center; cursor:pointer}
.dvtv-nf .dnf-dropzone:hover, .dvtv-nf .dnf-dropzone:focus-within {background:#10342e; border-color:#61efbf; box-shadow:0 0 8px #4cf0b326}
.dvtv-nf .dnf-dropzone:focus-within {outline:2px solid #e0fff2; outline-offset:2px}
.dvtv-nf .dnf-dropzone input {position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.dvtv-nf .dnf-drop-icon {width:27px; height:27px; background:#73ebc4; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 16V4m-5 6 5-6 5 6M4 16v5h16v-5'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 16V4m-5 6 5-6 5 6M4 16v5h16v-5'/%3E%3C/svg%3E") center/contain no-repeat}
.dvtv-nf .dnf-drop-text {font-size:13px; font-weight:650; color:#d3f9ec}
.dvtv-nf .dnf-drop-files {font-size:12px; color:#a1cabb; overflow-wrap:anywhere}
.dvtv-nf .dnf-panel-actions {display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; margin-top:9px}
.dvtv-nf .dnf-help {font-size:12px!important; line-height:1.6; color:#a5c4d1; margin:6px 0 0!important; overflow-wrap:anywhere}
.dvtv-nf .dnf-panel-actions .dnf-help {margin:0!important}
.dvtv-nf .dnf-upload-results p {margin:6px 0 0; font-size:13px; overflow-wrap:anywhere}
.dvtv-nf .dnf-progress {color:#92e4ff}
.dvtv-nf .dnf-success {color:#89f7c6!important}
.dvtv-nf .dnf-error {color:#ffb0bb!important}
.dvtv-nf .dnf-folder-controls {display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.dvtv-nf .dnf-folder-name {flex:1; min-width:140px; max-width:480px; height:35px; padding:6px 9px; border:1px solid #6485a6; border-radius:3px; background:#091825; color:#e5f3ff}
.dvtv-nf .dnf-folder-name::placeholder {color:#92abbf; opacity:1}
.dvtv-nf .dnf-message {font-size:13px; padding:8px 10px; border-bottom:1px solid #345164; background:#0c2232; color:#beddea; overflow-wrap:anywhere}
.dvtv-nf .dnf-message:empty {display:none}
.dvtv-nf .dnf-message.dnf-error {border-left:3px solid #ff849b; border-bottom-color:#703c51; background:#321d2a}
.dvtv-nf .dnf-drop-overlay {display:none; position:absolute; inset:5px; z-index:3; align-items:center; justify-content:center; padding:12px; border:2px dashed #59edbd; border-radius:4px; background:#0c342eeb; color:#c2ffe7; text-align:center; font-size:17px; font-weight:700; pointer-events:none; box-shadow:inset 0 0 25px #51efb924}
.dvtv-nf .dnf-dragging .dnf-drop-overlay {display:flex}
.dvtv-nf noscript p {padding:12px; color:#ffd591}

/* Settings remain confined to this plugin's own admin page. */
.dnf-settings {max-width:1280px; padding:14px 18px; border:1px solid #376078; border-radius:5px; color:#d3e7f3; background:#0a1926; color-scheme:dark; box-shadow:0 0 12px #3bb8de17}
.dnf-settings .dnf-settings-head {border-bottom:1px solid #38728c; padding-bottom:9px; margin-bottom:10px}
.dnf-settings .dnf-settings-kicker {color:#77c7e4; font:11px/1.5 Consolas,monospace; letter-spacing:.12em}
.dnf-settings h1 {font-size:24px; color:#e2f5ff; padding-top:3px; font-weight:650}
.dnf-settings h2 {color:#d4eaf7; font-size:18px}
.dnf-settings .form-table {margin-top:12px; border-collapse:collapse}
.dnf-settings .form-table th {color:#c9e9fa; font-weight:650; width:218px; padding:15px 12px; background:#102735; border-bottom:1px solid #294556}
.dnf-settings .form-table td {padding:12px 14px; border-bottom:1px solid #294556; background:#0d1e2c; color:#d3e7f3}
.dnf-settings .form-table textarea, .dnf-settings .form-table input.large-text {max-width:720px}
.dnf-settings .form-table input:not([type=checkbox]):not([type=radio]), .dnf-settings .form-table textarea, .dnf-settings .form-table select {background-color:#061421; border:1px solid #486d84; border-radius:3px; color:#dff3ff; max-width:100%}
.dnf-settings .form-table input::placeholder, .dnf-settings .form-table textarea::placeholder {color:#90aabe}
.dnf-settings .form-table input[type=checkbox], .dnf-settings .form-table input[type=radio] {border-color:#5d8299; background:#0b2333}
.dnf-settings .form-table select option {background:#0e2636; color:#dff3ff}
.dnf-settings .description {max-width:800px; color:#aac4d4; line-height:1.7}
.dnf-settings code {background:#102d40; color:#a9e5ff}
.dnf-settings .button {min-height:33px; padding:3px 12px; border:1px solid #51d8f3; border-radius:3px; background:#12384a; color:#c8f4ff; box-shadow:0 0 6px #43ddff26}
.dnf-settings .button-primary {background:#123d33; color:#d8ffee; border-color:#60ddb3; box-shadow:0 0 6px #4cf0b333}
.dnf-settings .button:hover {color:#fff; background:#1c4e64}
.dnf-settings .button-primary:hover {background:#215645}
.dnf-settings .button:disabled {opacity:.4; box-shadow:none}
.dnf-settings .notice {background:#102c38; color:#dbf1fa; box-shadow:none}
.dnf-settings .notice-error {background:#351f2a; color:#ffccd3}
.dnf-settings .dnf-error {color:#ffb0bb!important}
.dnf-settings .dnf-test-result {display:inline-block; font-size:13px; margin:8px 0; max-width:900px; color:#c3e8f4; overflow-wrap:anywhere}
.dnf-settings .dnf-install-note {border-left:3px solid #65bfec; background:#102a3b; padding:12px 15px; margin:18px 0}
.dnf-settings .dnf-install-note p {margin-bottom:0}
.dnf-settings .submit {margin:12px 0; padding:0}

/* Width-aware presentation: 860px tree drawer; 700px file cards. */
.dvtv-nf.dnf-compact .dnf-head-tools .dnf-tree-toggle {display:inline-flex}
.dvtv-nf.dnf-compact .dnf-head {padding:9px 13px}
.dvtv-nf.dnf-compact .dnf-head-meta {gap:10px}
.dvtv-nf.dnf-compact .dnf-link-status {font-size:11px}
.dvtv-nf.dnf-compact .dnf-tree {position:absolute; left:0; top:0; bottom:0; width:min(290px,88%); max-height:min(620px,70dvh); z-index:5; box-shadow:7px 0 18px #0009; border-right-color:#62b9d7}
.dvtv-nf.dnf-compact .dnf-tree-root {max-height:none; min-height:0}
.dvtv-nf.dnf-compact .dnf-tree-close {display:inline-block}
.dvtv-nf.dnf-compact .dnf-search {flex-basis:calc(100% - 130px)}
.dvtv-nf.dnf-compact .dnf-head-tools select {flex:1 1 auto; max-width:210px}
.dvtv-nf.dnf-cards .dnf-head {gap:8px; min-height:58px}
.dvtv-nf.dnf-cards .dnf-head h2 {font-size:21px!important; letter-spacing:.04em!important}
.dvtv-nf.dnf-cards .dnf-title {gap:7px}
.dvtv-nf.dnf-cards .dnf-title-icon {width:23px; transform:scale(.82); transform-origin:left center}
.dvtv-nf.dnf-cards .dnf-head-meta {gap:7px; flex-wrap:wrap; max-width:155px}
.dvtv-nf.dnf-cards .dnf-link-status {font-size:10px}
.dvtv-nf.dnf-cards .dnf-badge {font-size:10px; padding:2px 5px}
.dvtv-nf.dnf-cards .dnf-server-mark {display:none}
.dvtv-nf.dnf-cards .dnf-kicker {font-size:9px; letter-spacing:.13em}
.dvtv-nf.dnf-cards .dnf-head-tools {padding:8px; gap:7px}
.dvtv-nf.dnf-cards .dnf-head-tools .dnf-btn {min-height:34px; padding:5px 8px; font-size:12px}
.dvtv-nf.dnf-cards .dnf-head-tools select {font-size:12px; height:34px}
.dvtv-nf.dnf-cards .dnf-breadcrumb {padding:6px 8px}
.dvtv-nf.dnf-cards .dnf-table-wrap {max-height:none; overflow:visible}
.dvtv-nf.dnf-cards .dnf-table thead {display:none}
.dvtv-nf.dnf-cards .dnf-table, .dvtv-nf.dnf-cards .dnf-table tbody {display:block; min-width:0}
.dvtv-nf.dnf-cards .dnf-table tr {display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 10px; padding:10px; border-bottom:1px solid #36586d}
.dvtv-nf.dnf-cards .dnf-table td {display:block; height:auto; padding:0; border:0!important; background:transparent!important}
.dvtv-nf.dnf-cards .dnf-table .dnf-name {grid-column:1/-1; width:100%; min-width:0}
.dvtv-nf.dnf-cards .dnf-name-content {gap:8px}
.dvtv-nf.dnf-cards .dnf-table .dnf-operations {grid-column:1/-1; margin-top:2px}
.dvtv-nf.dnf-cards .dnf-table .dnf-empty {grid-column:1/-1; padding:16px 0}
.dvtv-nf.dnf-cards .dnf-modified::before {content:'更新 '; color:#82a8bd}
.dvtv-nf.dnf-cards .dnf-actions {justify-content:flex-start; flex-wrap:wrap; gap:8px}
.dvtv-nf.dnf-cards .dnf-actions .dnf-btn {min-height:32px; padding:4px 9px}
.dvtv-nf.dnf-cards .dnf-bottom {padding:8px; gap:7px}
.dvtv-nf.dnf-cards .dnf-count {flex-basis:100%}
.dvtv-nf.dnf-cards .dnf-updated {margin-left:0; margin-right:auto}
.dvtv-nf.dnf-cards .dnf-panel {margin:8px; padding:9px}
.dvtv-nf.dnf-cards .dnf-panel-head {font-size:13px}
@media(max-width:782px) {
  .dnf-settings {margin-right:10px; padding:10px}
  .dnf-settings .form-table th, .dnf-settings .form-table td {display:block; width:auto; padding:10px}
  .dnf-settings .form-table th {border-bottom:0}
}
@media(prefers-reduced-motion:reduce) {
  .dvtv-nf *, .dvtv-nf *::before, .dvtv-nf *::after {animation:none!important; transition:none!important; scroll-behavior:auto!important}
}
@media(forced-colors:active) {
  .dvtv-nf, .dvtv-nf .dnf-btn, .dvtv-nf .dnf-tree {border-color:ButtonText; box-shadow:none}
}

/* v1.7.0: only the actual widget's leading ancestor chain is tagged by files.js.
   Site headers, navigation, real preceding content and unrelated pages stay intact. */
.dvtv-nf[data-compact-page="1"] {margin-top:0!important}
.dnf-tight-parent {margin-top:0!important; padding-top:0!important}
.dnf-leading-empty {display:none!important}
.dnf-tight-parent.dnf-tight-anchor {margin-top:var(--dnf-top-margin,0px)!important; padding-top:var(--dnf-top-clearance,8px)!important}

/* ZIP actions share the breadcrumb row on wide screens instead of adding a banner. */
.dvtv-nf .dnf-location-bar {display:flex; flex-wrap:wrap; align-items:center; gap:0 8px; border-bottom:1px solid var(--dnf-line); background:#0b1f2d}
.dvtv-nf .dnf-location-bar .dnf-breadcrumb {flex:1 1 210px; border-bottom:0; min-height:37px}
.dvtv-nf .dnf-bulk-tools {display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; padding:5px 9px; min-height:37px; max-width:100%; margin-left:auto}
.dvtv-nf .dnf-select-label {display:inline-flex; align-items:center; gap:6px; margin:0; white-space:nowrap; font-size:12px; color:#c9e8f4; cursor:pointer; min-height:28px}
.dvtv-nf .dnf-check {appearance:none!important; -webkit-appearance:none!important; display:inline-block!important; position:relative; flex:none; width:18px!important; height:18px!important; min-width:18px!important; margin:0!important; padding:0!important; border:1px solid #69afc5!important; border-radius:3px!important; background:#091d2b!important; box-shadow:inset 0 0 4px #30c8ee22!important; vertical-align:middle; cursor:pointer}
.dvtv-nf .dnf-check::before {content:none!important}
.dvtv-nf .dnf-check:checked {border-color:#5ef0cb!important; background:#124938!important; box-shadow:0 0 6px #4cf0b359!important}
.dvtv-nf .dnf-check:checked::after {content:''; position:absolute; left:5px; top:2px; width:5px; height:9px; border:solid #beffe8; border-width:0 2px 2px 0; transform:rotate(45deg)}
.dvtv-nf .dnf-check:indeterminate::after {content:''; position:absolute; top:7px; left:3px; width:10px; height:2px; background:#83fadc}
.dvtv-nf .dnf-check:disabled {cursor:not-allowed}
.dvtv-nf .dnf-check-hit {display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; margin:0; cursor:pointer}
.dvtv-nf .dnf-selected-count {font-size:12px; font-variant-numeric:tabular-nums; color:#a8d3e7; white-space:nowrap}
.dvtv-nf .dnf-zip-download {--dnf-btn-rgb:255,211,108; --dnf-btn-edge:#edbe53; --dnf-btn-text:#fff0c3}
.dvtv-nf .dnf-selection-clear {padding-left:6px; padding-right:6px}
.dvtv-nf .dnf-table .dnf-th-select, .dvtv-nf .dnf-table .dnf-select-cell {width:38px; min-width:38px; padding:4px 5px; text-align:center}
.dvtv-nf .dnf-table tbody tr.dnf-row-selected {background:#113930; box-shadow:inset 3px 0 0 #61eec0}
.dvtv-nf .dnf-table tbody tr.dnf-row-selected:hover {background:#164839}
.dvtv-nf.dnf-cards .dnf-location-bar .dnf-breadcrumb {flex-basis:100%}
.dvtv-nf.dnf-cards .dnf-bulk-tools {justify-content:flex-start; margin:0; gap:6px; width:100%; padding:5px 8px 7px; border-top:1px solid #203f50}
.dvtv-nf.dnf-cards .dnf-bulk-tools .dnf-btn {font-size:11px; padding:4px 6px; min-height:30px}
.dvtv-nf.dnf-cards .dnf-select-label, .dvtv-nf.dnf-cards .dnf-selected-count {font-size:11px}
.dvtv-nf.dnf-cards .dnf-bulk-tools .dnf-ico {width:12px; height:12px; margin-right:3px}
.dvtv-nf.dnf-cards .dnf-table tr {grid-template-columns:26px minmax(0,1fr) auto; column-gap:7px}
.dvtv-nf.dnf-cards .dnf-table .dnf-select-cell {grid-column:1; grid-row:1; align-self:start; min-width:0; width:26px; padding:0}
.dvtv-nf.dnf-cards .dnf-table .dnf-name {grid-column:2/-1; grid-row:1}
.dvtv-nf.dnf-cards .dnf-table .dnf-modified {grid-column:2}
.dvtv-nf.dnf-cards .dnf-table .dnf-size {grid-column:3}
.dvtv-nf.dnf-cards .dnf-table tr.dnf-folder-row .dnf-name {grid-column:1/-1}
.dvtv-nf.dnf-cards .dnf-table tr.dnf-folder-row .dnf-modified {grid-column:1/3}
.dvtv-nf.dnf-cards .dnf-table tr.dnf-row-selected {background:#12392f; box-shadow:inset 3px 0 0 #61eec0}
@media(forced-colors:active) {
  .dvtv-nf .dnf-check {appearance:auto!important; -webkit-appearance:auto!important; border-color:ButtonText!important}
  .dvtv-nf .dnf-check::after {display:none!important}
}

/* v1.8.0: compact ADMIN-only shortcut; no extra banner or user-list assets on file pages. */
.dvtv-nf .dnf-users-link {--dnf-btn-rgb:181,147,247; --dnf-btn-edge:#a995e6; --dnf-btn-text:#e4daff; font-size:11px; white-space:nowrap}
.dvtv-nf.dnf-cards .dnf-head-meta .dnf-users-link {font-size:10px; min-height:25px; padding:3px 6px}
