.dc-cabinet{max-width:1200px;margin:auto;padding:20px}.dc-crumbs{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.dc-crumbs button{background:none;border:0;color:#17475f;text-decoration:underline;min-height:44px}.dc-search{display:grid;gap:8px;font-weight:600;margin:24px 0}.dc-search input{width:100%;min-height:48px;padding:12px 16px;border:1px solid #aec2ca;border-radius:10px;background:#fff}.dc-shelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:26px 16px;padding:22px 18px 32px;background:linear-gradient(#eef3f5,#dbe6eb);border-bottom:12px solid #a5b8c1;border-radius:14px;box-shadow:0 8px 12px #18384b15}.dc-binder{position:relative;min-height:245px;border:1px solid #163d52;border-radius:5px 14px 14px 5px;background:#244d63;color:#18394c;padding:30px 18px 60px 30px;text-align:left;box-shadow:5px 6px 0 #12324525;transition:transform .15s}.dc-binder:hover{transform:translateY(-5px)}.dc-binder:focus-visible,.dc-cabinet button:focus-visible,.dc-viewer button:focus-visible{outline:3px solid #e9a72b;outline-offset:4px}.dc-spine{position:absolute;left:8px;top:0;bottom:0;width:7px;border-left:1px solid #ffffff40;border-right:1px solid #0003}.dc-label{display:grid;gap:20px;background:#fffdf3;padding:18px 12px;border-radius:3px;min-height:132px;box-shadow:inset 0 0 0 1px #0002}.dc-label strong{font-size:19px;overflow-wrap:anywhere}.dc-label small{font-size:13px;color:#536775}.dc-ring{position:absolute;width:28px;height:28px;border:6px solid #becbd0;border-radius:50%;bottom:19px;left:calc(50% - 14px);background:#102c3a;box-shadow:0 0 0 2px #142e3c}.dc-color-1{background:#537668}.dc-color-2{background:#777169}.dc-color-3{background:#567a8d}.dc-color-4{background:#805e4f}.dc-document,.dc-set{display:flex;justify-content:space-between;align-items:center;gap:16px;background:white;border:1px solid #d4e0e5;border-radius:10px;padding:18px;margin:12px 0;width:100%;text-align:left}.dc-document>div{min-width:0}.dc-document p,.dc-document small{overflow-wrap:anywhere;color:#526975}.dc-document button{flex-shrink:0;min-height:44px}.dc-set{min-height:76px;background:#edf3f5;color:#1c465d}.dc-empty{padding:36px 16px;color:#536775;text-align:center}.dc-viewer{width:96vw;max-width:1600px;height:92vh;border:0;border-radius:12px;padding:16px}.dc-viewer::backdrop{background:#092535bb}.dc-viewer header{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.dc-viewer button,.dc-viewer select{min-height:44px;padding:8px;border:1px solid #c0cdd4;border-radius:6px;background:#fff;color:#173a4e}.dc-panes{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:calc(100% - 82px)}.dc-panes[data-ratio=left]{grid-template-columns:2fr 1fr}.dc-panes[data-ratio=right]{grid-template-columns:1fr 2fr}.dc-pane{display:flex;flex-direction:column;min-width:0;min-height:0;gap:8px;background:#edf2f4;padding:10px;border-radius:8px}.dc-pane label{display:flex;gap:8px;align-items:center}.dc-pane select{width:100%;min-width:0}.dc-preview{flex:1;overflow:auto;min-height:0;background:white;padding:8px}.dc-preview iframe{width:100%;height:100%;border:0;min-height:320px}.dc-preview img{max-width:100%;height:auto}.dc-pane:fullscreen{height:100vh}.dc-mobile-tabs{display:none}@media(max-width:600px){.dc-cabinet{padding:12px}.dc-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;padding:16px 10px}.dc-binder{min-height:210px;padding:20px 12px 50px 22px}.dc-label{padding:14px 8px}.dc-label strong{font-size:16px}.dc-document{align-items:flex-start;flex-direction:column}.dc-viewer{width:100vw;height:96vh;margin:auto;padding:8px}.dc-mobile-tabs{display:flex;gap:10px;margin:10px 0}.dc-panes,.dc-panes[data-ratio]{display:block;height:calc(100% - 160px)}.dc-pane{height:100%}.dc-pane[data-pane="1"]{display:none}.dc-viewer[data-mobile-tab="1"] .dc-pane[data-pane="0"]{display:none}.dc-viewer[data-mobile-tab="1"] .dc-pane[data-pane="1"]{display:flex}.dc-viewer [data-dc-ratio]{display:none}}
.dc-cabinet .dc-crumbs button{color:#80d4e2}.dc-search input,.dc-document,.dc-viewer{color:#173a4e}.dc-viewer{background:#edf2f4}.dc-panes:has(>.dc-pane:only-child){grid-template-columns:1fr}.dc-cabinet .dc-empty{color:#aebfc9}

/* R2.1: steel cabinet, with shelves aligned to the responsive grid rows.
   Fixed-width binders leave genuine unused shelf space; no image backdrop. */
.dc-shelf {
  --dc-row: 284px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
  grid-auto-rows: var(--dc-row);
  align-items: end;
  gap: 0 16px;
  padding: 0 24px;
  min-height: calc(var(--dc-row) * 2);
  border: solid #28445f;
  border-width: 18px 18px 24px;
  border-radius: 8px 8px 4px 4px;
  background: repeating-linear-gradient(to bottom,
    #102438 0, #172f46 22px, #162d43 calc(var(--dc-row) - 24px),
    #3f5b73 calc(var(--dc-row) - 24px), #60768a calc(var(--dc-row) - 21px),
    #29465e calc(var(--dc-row) - 17px), #20394e calc(var(--dc-row) - 8px),
    #0b1b2b calc(var(--dc-row) - 8px), #0b1b2b var(--dc-row));
  box-shadow: inset 12px 0 15px -12px #000, inset -12px 0 15px -12px #000,
    0 3px 0 #587087, 0 12px 24px #0005;
}
.dc-shelf .dc-binder {
  width: 100%;
  max-width: 176px;
  height: 242px;
  min-height: 0;
  margin: 0 0 24px;
  box-shadow: 5px 1px 0 #0a1c2db3, 8px 6px 10px #0005;
}
.dc-shelf .dc-binder:hover { transform: translateY(-3px); }
@media (max-width: 600px) {
  .dc-shelf {
    --dc-row: 244px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-width: 10px 8px 16px;
    padding: 0 10px;
    column-gap: 12px;
  }
  .dc-shelf .dc-binder { height: 206px; max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .dc-binder { transition: none; }
  .dc-shelf .dc-binder:hover { transform: none; }
}
/* R2.3 presentation only: six fixed slots, four minimum shelves; extra rows
   grow naturally. Decorative lower shelf has no document/data semantics. */
.dc-cabinet .dc-shelf {
  --dc-row:190px;
  box-sizing:border-box;
  position:relative;
  width:580px;
  max-width:100%;
  margin:32px auto 28px;
  grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:var(--dc-row);
  align-content:start;
  gap:0 7px;
  padding:0 12px 100px;
  min-height:calc(var(--dc-row) * 4 + 142px);
  border-width:18px 12px 24px;
  border-color:#344657 #1d2d3b #283b4a;
  border-radius:3px;
  box-shadow:inset 8px 0 14px #0008,inset -8px 0 14px #0008,0 1px 0 #98a4ae,2px 3px 0 #0a111a,14px 18px 32px #0007,-20px 0 70px #44688518;
}
.dc-cabinet:has(.dc-shelf){background:radial-gradient(ellipse at 48% 36%,#7190a51c,transparent 65%),linear-gradient(to bottom,transparent 94%,#8d796c12 94.2%,#10192355);border-radius:12px;padding-bottom:40px}
.dc-cabinet .dc-shelf::before{content:"";position:absolute;inset:-18px -12px -24px;pointer-events:none;border:1px solid #bccbd233;border-radius:3px;background:linear-gradient(90deg,#b5c8d215,transparent 3%,transparent 97%,#0003);box-shadow:0 35px 25px -25px #000a}
.dc-cabinet .dc-shelf::after {
  content:"";pointer-events:none;position:absolute;left:12px;right:12px;bottom:0;height:96px;
  border-bottom:8px solid #445869;
  background:url('cabinet-shelf-decor.svg') center bottom/100% 92px no-repeat,linear-gradient(#101b26,#1b2b38);
}
.dc-cabinet .dc-shelf .dc-binder {
  box-sizing:border-box;max-width:none;width:100%;height:166px;margin-bottom:24px;
  padding:16px 6px 36px 9px;border-radius:3px 5px 5px 3px;
  box-shadow:3px 1px 0 #091522,5px 4px 7px #0007;
  background-image:linear-gradient(90deg,#0003,transparent 12%,#ffffff0d 40%,transparent 75%,#0003);
  border-top-color:#ffffff38;border-right-color:#ffffff24;
  touch-action:manipulation;
}
.dc-cabinet .dc-shelf .dc-spine{left:3px;width:3px}
.dc-cabinet .dc-shelf .dc-label{min-height:103px;max-height:112px;overflow:auto;padding:9px 3px;gap:5px;text-align:center;background:linear-gradient(100deg,#e5e1d6,#fffdf4 32%,#f4f0e4);box-shadow:0 1px 2px #0005,inset 0 0 0 1px #fff9}
.dc-cabinet .dc-shelf .dc-label strong{font-size:10.5px;line-height:1.3;min-width:0;overflow-wrap:normal;word-break:normal;hyphens:auto}
.dc-cabinet .dc-shelf .dc-label small{font-size:9px;line-height:1.2}
.dc-cabinet .dc-shelf .dc-ring{width:17px;height:17px;border-width:3px;left:calc(50% - 8.5px);bottom:10px}
.dc-cabinet .dc-shelf .mh-logo{max-height:34px;width:auto;max-width:100%;justify-self:center}
.dc-shelf [data-mh-binder]{order:1}
.dc-shelf [data-manual-binder]{order:2}
.dc-manual.dc-manual-at-cabinet{max-width:580px;margin:0 auto}
.dc-manual-at-cabinet header h2,.dc-manual-at-cabinet nav,.dc-manual-at-cabinet .dc-manual-folders{display:none}
.dc-manual-at-cabinet header{justify-content:flex-end}
@media(max-width:600px){
 .dc-cabinet .dc-shelf{width:360px;grid-template-columns:repeat(3,minmax(0,1fr));padding-left:10px;padding-right:10px;border-left-width:8px;border-right-width:8px}
 .dc-cabinet .dc-shelf .dc-label strong{font-size:12px}
}
@media(max-width:350px){.dc-cabinet .dc-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(hover:none){.dc-cabinet .dc-shelf .dc-binder:hover{transform:none}}
.dc-cabinet .dc-shelf .dc-binder>span{pointer-events:none}
.dc-layout-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;max-width:580px;margin:12px auto}
.dc-layout-controls button{min-height:44px;padding:10px 16px}
/* Desktop viewport fit: uniform zoom preserves cabinet/binder proportions.
   Controls stay full-sized alongside the cabinet; mobile keeps its touch grid. */
@media(min-width:1024px){
 .dc-cabinet:has(.dc-shelf){display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:32px;align-items:start;padding:12px 20px 16px}
 .dc-cabinet:has(.dc-shelf)>.page-heading{grid-column:1;grid-row:1;display:block;margin:0}
 .dc-cabinet:has(.dc-shelf)>.page-heading h1{font-size:26px}
 .dc-cabinet:has(.dc-shelf)>.dc-crumbs{grid-column:1;grid-row:2;margin:8px 0}
 .dc-cabinet:has(.dc-shelf)>.dc-search{grid-column:1;grid-row:3;margin:8px 0}
 .dc-cabinet:has(.dc-shelf)>.dc-content{display:contents}
 .dc-cabinet .dc-shelf{grid-column:2;grid-row:1/5;align-self:start;justify-self:center;margin:0;zoom:var(--dc-fit,1)}
 .dc-cabinet:has(.dc-shelf) .dc-layout-controls{grid-column:1;grid-row:4;margin:12px 0;align-content:start}
 .dc-cabinet .dc-shelf .dc-binder{padding:6px 3px 36px}
 .dc-cabinet .dc-shelf .dc-label strong{font-size:max(10.5px,calc(10.5px / var(--dc-fit,1)));line-height:1.1;overflow-wrap:anywhere}
 .dc-cabinet .dc-shelf .dc-label small{font-size:max(9px,calc(9px / var(--dc-fit,1)));line-height:1.05;overflow-wrap:anywhere}
 .dc-cabinet .dc-shelf .dc-label{overflow:visible;max-height:none;min-height:103px;padding:2px;gap:2px}
 .dc-cabinet .dc-shelf .mh-logo{max-height:24px}
 .dc-cabinet .dc-shelf .dc-ring{bottom:1px}
}
/* Standalone Digital Map view. Dashboard chrome is not mounted in this view. */
.dc-workspace{min-height:100dvh;background:var(--bg);color:var(--text);outline:none}
.dc-workspace .dc-cabinet,.dc-workspace .dc-cabinet:has(.dc-shelf){display:block;max-width:none;padding:0 24px 16px;background:radial-gradient(ellipse at 50% 45%,#28445855,transparent 65%);border-radius:0}
.dc-workspace-toolbar{display:flex;align-items:center;gap:18px;min-height:68px;border-bottom:1px solid var(--line);flex-wrap:wrap;padding:8px 0}
.dc-workspace-toolbar>strong{white-space:nowrap;font-size:16px}
.dc-workspace-toolbar button{min-height:40px;padding:8px 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;color:var(--text);white-space:nowrap}
.dc-workspace-toolbar>.dc-search{display:flex;align-items:center;gap:8px;margin:0;flex:1;min-width:200px;font-size:12px;color:var(--muted)}
.dc-workspace .dc-search input{min-height:40px;padding:8px 12px;background:var(--panel);border-color:var(--line);color:var(--text)}
.dc-workspace-actions{display:flex;gap:8px;align-items:center}
.dc-workspace .dc-layout-controls{margin:0;max-width:none;gap:8px;flex-wrap:nowrap}
.dc-workspace .dc-layout-controls>span{max-width:160px;font-size:11px;color:var(--muted)}
.dc-workspace .dc-crumbs{margin:4px auto;max-width:1100px;min-height:36px;font-size:13px}
.dc-workspace .dc-crumbs button{min-height:36px}
.dc-workspace .dc-content,.dc-workspace .dc-cabinet:has(.dc-shelf)>.dc-content{display:block;max-width:1100px;margin:auto}
.dc-workspace .dc-shelf{margin:0 auto!important;zoom:var(--dc-fit,1);background:linear-gradient(90deg,#0d1c2a,#192f42 50%,#0d1c2a)}
.dc-physical-shelves{position:absolute;inset:0 0 100px;pointer-events:none}
.dc-physical-shelves i{position:absolute;left:0;right:0;height:24px;background:linear-gradient(#8c9290 0 2px,#556675 2px 6px,#344958 6px 15px,#172735 15px 20px,#0a1721 20px);box-shadow:0 5px 8px #0007}
.dc-workspace .dc-shelf .dc-binder{z-index:1}
.dc-workspace .dc-shelf .dc-binder:hover{transform:none;filter:brightness(1.08)}
.dc-workspace .dc-manual-at-cabinet{margin:0}
.dc-workspace .dc-manual-at-cabinet>header{display:none}
.dc-workspace .dc-document,.dc-workspace .dc-set{background:var(--panel);border-color:var(--line);color:var(--text);box-shadow:0 2px 4px #0002}
.dc-workspace .dc-set:hover,.dc-workspace .dc-document:hover{background:var(--panel-soft)}
.dc-workspace .dc-set>span{color:var(--muted);text-align:right;flex-shrink:0;font-size:13px}
.dc-workspace .dc-document p,.dc-workspace .dc-document small{color:var(--muted)}
.dc-workspace .dc-document button,.dc-workspace .dc-manual-actions button{background:var(--panel-soft);border:1px solid var(--line);color:var(--text)}
.dc-workspace .mh-cabinet>.dc-binder,.dc-workspace .dc-manual-folders>.dc-binder{width:100%;min-height:72px;height:auto;margin:12px 0;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:none;transform:none;color:var(--text)}
.dc-workspace .mh-cabinet>.dc-binder:hover,.dc-workspace .dc-manual-folders>.dc-binder:hover{background:var(--panel-soft)}
.dc-workspace .mh-cabinet>.dc-binder .dc-label,.dc-workspace .dc-manual-folders>.dc-binder .dc-label{display:flex;align-items:center;gap:12px;min-height:0;padding:0;background:none;box-shadow:none}
.dc-workspace .mh-cabinet>.dc-binder .dc-label strong,.dc-workspace .dc-manual-folders>.dc-binder .dc-label strong{font-size:16px;color:var(--text)}
.dc-workspace .mh-cabinet>.dc-binder .dc-label small,.dc-workspace .dc-manual-folders>.dc-binder .dc-label small{margin-left:auto;color:var(--muted)}
.dc-workspace .mh-cabinet>.dc-binder .mh-logo{max-height:32px;width:auto}
.dc-workspace .mh-cabinet>.dc-binder .dc-ring,.dc-workspace .mh-cabinet>.dc-binder .dc-spine,.dc-workspace .dc-manual-folders>.dc-binder .dc-ring,.dc-workspace .dc-manual-folders>.dc-binder .dc-spine{display:none}
.dc-workspace .dc-manual:not(.dc-manual-at-cabinet) .dc-manual-folders{display:block}
@media(max-width:1023px){.dc-workspace .dc-cabinet{padding:0 12px 16px}.dc-workspace-toolbar{gap:8px}.dc-workspace-toolbar>.dc-search{order:3;flex-basis:100%}.dc-workspace-actions{margin-left:auto}.dc-workspace .dc-shelf{zoom:1}.dc-workspace-toolbar>strong{font-size:14px}}
@media(max-width:600px){.dc-workspace-toolbar>strong{white-space:normal}.dc-workspace-actions{margin:0;flex-wrap:wrap}.dc-workspace .dc-layout-controls{flex-wrap:wrap}.dc-workspace .dc-set{gap:8px;padding:14px}.dc-workspace .dc-set>span{max-width:90px}}
.dc-layout-slot{min-height:166px;border:1px dashed #92b5cc66;border-radius:5px;pointer-events:none}
.dc-layout-editing .dc-binder{touch-action:none!important;cursor:grab;z-index:2}
.dc-layout-dragging{opacity:.55}
.dc-layout-slot.dc-layout-target{background:#4ba1d477;outline:3px solid #9dd8ff;z-index:3}
.dc-manual{margin-top:24px}.dc-manual header,.dc-manual-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.dc-manual header{justify-content:space-between}.dc-manual h2 small{font-size:12px;color:#aebfc9}.dc-manual button,.dc-folder-dialog button{min-height:44px;padding:10px 16px}.dc-manual nav{margin:12px 0}.dc-manual-folders{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px}.dc-manual-folders .dc-binder{width:170px}.dc-folder-dialog{max-width:min(92vw,520px);background:#142b40;color:#eaf1f8;border:1px solid #547089;border-radius:12px;padding:24px}.dc-folder-dialog::backdrop{background:#071521bb}.dc-folder-dialog label{display:grid;gap:8px;margin:18px 0}.dc-folder-dialog input,.dc-folder-dialog select{min-height:44px;width:100%;max-width:100%;color:#173a4e;background:#fff;padding:10px}.dc-folder-dialog form>div{display:flex;gap:12px;justify-content:flex-end}
