/* PC presentation owns its layout; it does not override the field application's shell. */
:root {
  --line:#d4e0dc; --ink:#203b33; --bg:#f4f7f5; --green:#176d5b;
  --green-hover:#125747; --muted:#5b7067;
}
body[data-view=desk] {
  margin:0; padding-left:72px; overflow:hidden; color:var(--ink); background:var(--bg);
  font:14px/1.5 'Yu Gothic UI',Meiryo,'Segoe UI',system-ui,sans-serif;
}
body[data-view=desk] main {
  width:100%; max-width:none; height:100dvh; min-height:0; margin:0;
  padding:12px 16px; display:flex; flex-direction:column; gap:8px; overflow:hidden;
}
#pc-navigation {
  position:fixed; inset:0 auto 0 0; width:72px; display:flex; flex-direction:column;
  gap:5px; padding:10px 4px calc(var(--pc-account-height,145px) + var(--pc-network-height,35px) + 20px); overflow-y:auto; background:#143e34; z-index:20;
}
body[data-view=desk] #pc-navigation button {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  flex:0 0 auto; width:100%; min-height:66px; padding:7px 2px; border:0; border-radius:8px;
  background:transparent; color:#d5e7de; font-size:11px; line-height:1.4; text-align:center;
}
#pc-navigation button span { white-space:pre-line; overflow-wrap:anywhere; }
#pc-navigation button svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
body[data-view=desk] #pc-navigation button:hover { background:#ffffff14; color:white; }
body[data-view=desk] #pc-navigation button[aria-current=true] { background:#2b6652; color:white; box-shadow:inset 3px 0 #8bd3b0; }
#pc-navigation #pc-gpx { margin-top:10px; border-top:1px solid #ffffff33; }
body[data-view=desk] #account {
  position:fixed; inset:auto auto 0 0; width:72px; max-height:50dvh; overflow:auto; overscroll-behavior:contain;
  display:block; padding:10px 5px; background:#143e34; color:white; text-align:center; font-size:11px; z-index:21;
}
body[data-view=desk] #account .brand { display:none; }
body[data-view=desk] #account button { display:block; width:100%; min-height:30px; padding:5px 2px; margin-top:8px; font-size:11px; }
body[data-view=desk] #identity { display:block; overflow-wrap:anywhere; }
body[data-view=desk]>nav { position:fixed; left:5px; bottom:calc(var(--pc-account-height,145px) + 4px); width:62px; padding:0; background:transparent; z-index:22; }
body[data-view=desk] #account #desk-view,body[data-view=field] #account #field-view,
body[data-auth-locked=true] #account #field-view,body[data-auth-locked=true] #account #desk-view { display:none; }
body[data-view=desk] #network { margin:0; color:#d5e7de; font-size:10px; text-align:center; overflow-wrap:anywhere; }
body[data-view=desk] button,body[data-view=desk] input:not([type=checkbox]),body[data-view=desk] select {
  min-height:36px; padding:7px 10px; border-radius:6px; font-size:14px; max-width:100%;
}
body[data-view=desk] input[type=checkbox] { width:18px; height:18px; }
body[data-view=desk] textarea { min-height:72px; padding:8px; font-size:14px; }
body[data-view=desk] .primary { color:white; background:var(--green); border-color:var(--green); font-weight:700; }
body[data-view=desk] .primary:hover { background:var(--green-hover); }
body[data-view=desk] section { min-width:0; padding:16px; margin:0; border:0; border-radius:0; }
body[data-view=desk] h1 { margin:0; font-size:18px; line-height:1.4; }
body[data-view=desk] h2 { margin:12px 0 8px; font-size:16px; }
body[data-view=desk] p { margin:7px 0; }
body[data-view=desk] #pc-toolbar {
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px;
  min-width:0; flex-shrink:0; padding:0; background:transparent;
}
#pc-toolbar h1 { flex:0 0 auto; margin-right:4px; }
body[data-view=desk] #pc-toolbar label {
  display:flex; align-items:center; gap:7px; flex:1 1 210px; min-width:160px;
  max-width:340px; font-size:12px; font-weight:600; white-space:nowrap;
}
#pc-toolbar label select { width:0; min-width:70px; flex:1; margin:0; }
body[data-view=desk] #working-ds { flex-basis:280px; min-width:230px; max-width:420px; }
#working-ds>button { flex:none; }
#pc-save-actions { display:flex; align-items:center; gap:8px; margin-left:auto; flex-wrap:wrap; min-width:0; }
#pc-save-status { font-size:12px; color:var(--muted); max-width:240px; overflow-wrap:anywhere; }
body:not([data-page=survey]) #pc-save-status,
body[data-survey-tab=evaluation] #pc-save-status,
body[data-survey-tab=elevation] #pc-save-status,
body[data-survey-tab=references] #pc-save-status { display:none; }
body[data-view=desk] #pc-save { min-width:70px; }
body[data-view=desk] #message {
  flex-shrink:0; margin:0; padding:4px 8px; max-height:64px; overflow:auto; font-size:12px; border-radius:4px;
}
body[data-view=desk] #message:not(.error) { background:transparent; border:0; color:var(--muted); }
#pc-layout-actions { display:flex; align-items:center; gap:6px; flex:0 0 auto; min-width:0; max-width:100%; }
#pc-layout-controls { flex:0 0 auto; }
.pc-pane-switch { display:flex; flex-wrap:nowrap; gap:4px; }
body[data-view=desk] #pc-layout-actions button { min-height:32px; padding:4px 8px; font-size:12px; white-space:nowrap; }
.pc-pane-switch button[aria-pressed=true] { background:#e2efe8; border-color:var(--green); color:var(--green-hover); font-weight:700; }
body[data-view=desk] #pc-workspace {
  flex:1 1 0; width:100%; height:auto; min-width:0; min-height:0; border:1px solid var(--line);
  border-radius:9px; overflow:hidden; background:white;
}
.pc-split {
  display:grid; grid-template-columns:calc(var(--pc-editor-size,45%) - 5px) 10px calc(var(--pc-map-size,55%) - 5px);
  grid-template-rows:minmax(0,1fr); grid-template-areas:'editor divider map';
}
.pc-split[data-order=map-first] {
  grid-template-columns:calc(var(--pc-map-size,55%) - 5px) 10px calc(var(--pc-editor-size,45%) - 5px);
  grid-template-areas:'map divider editor';
}
.pc-layout-pane { min-width:0; min-height:0; overflow:hidden; }
.pc-layout-editor { grid-area:editor; }
.pc-layout-map { grid-area:map; }
.pc-layout-pane>#pc-editor,.pc-layout-pane>#map-pane { width:100%; height:100%; min-height:0; min-width:0; }
body[data-view=desk] #pc-editor { display:flex; flex-direction:column; overflow:auto; background:white; container:workpane / inline-size; }
body[data-view=desk] #pc-editor>section,
body[data-view=desk] #pc-editor>details { flex:0 0 auto; }
body[data-view=desk] #map-pane { display:flex; flex-direction:column; min-height:0; padding:0; overflow:hidden; background:#edf3ef; }
body[data-view=desk] #map { display:block; flex:1 1 0; height:100%; width:100%; min-height:0; max-height:none; border-radius:0; touch-action:none; }
.pc-layout-divider { grid-area:divider; display:grid; place-items:center; min-width:10px; background:#e2ebe6; cursor:col-resize; touch-action:none; }
.pc-layout-divider>span { width:3px; height:42px; border-radius:3px; background:#91ada0; }
.pc-layout-divider:hover,.pc-layout-divider:focus-visible,.pc-layout-dragging .pc-layout-divider { background:#b9d1c3; }
.pc-split[data-layout=editor],.pc-split[data-layout=map] { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
.pc-split[data-layout=editor] { grid-template-areas:'editor'; }
.pc-split[data-layout=map] { grid-template-areas:'map'; }
#map-caption { flex:0 0 auto; padding:0 12px; font-size:11px; }
.jv-map-attribution { flex:0 0 auto; text-align:right; font-size:10px; padding:4px 10px; }
.jv-map-attribution span { margin-right:8px; }
body[data-view=desk] #pc-overview,body[data-view=desk] #preparation,
body[data-view=desk] #survey,body[data-view=desk] #evaluation-section,
body[data-view=desk] #inspector-panel,body[data-view=desk] #export-panel { display:none; }
body[data-view=desk][data-page=map] #pc-overview,
body[data-view=desk][data-page=gpx] #preparation,
body[data-view=desk][data-page=inspectors] #inspector-panel,
body[data-view=desk][data-page=export] #export-panel { display:block; }
body[data-view=desk][data-page=survey][data-survey-tab=evaluation] #evaluation-section,
body[data-view=desk][data-page=survey]:not([data-survey-tab=evaluation]) #survey { display:block; }
body[data-view=desk] #pc-editor>section>h1,
body[data-view=desk] #route-composition>h1,body[data-view=desk] #survey>h1 { display:none; }
.tabbar { display:flex; flex-wrap:wrap; flex:0 0 auto; gap:5px; background:#f5f8f6; border-bottom:1px solid var(--line); padding:9px; }
body[data-view=desk] .tabbar button { flex:1 1 75px; min-width:0; white-space:normal; }
.tabbar button[aria-selected=true],
body[data-route-tab=basic] [data-route-tab=basic],
body[data-route-tab=composition] [data-route-tab=composition],
body[data-route-tab=assignments] [data-route-tab=assignments],
body[data-route-tab=references] [data-route-tab=references] { color:white; background:var(--green); border-color:var(--green); font-weight:700; }
#survey-tabs { display:none; }
body[data-view=desk][data-page=survey] #survey-tabs { display:flex; }
body[data-view=desk] #pc-list { display:none; }
body[data-view=desk][data-record-view=list] #pc-list { display:block; }
body[data-view=desk][data-record-view=list] #editor { display:none; }
.record-views { display:flex; flex-wrap:wrap; gap:6px; padding:0 0 10px; margin-bottom:10px; border-bottom:1px solid var(--line); }
.record-views button[aria-pressed=true] { color:white; background:var(--green); border-color:var(--green); font-weight:700; }
body[data-view=desk] #record-toolbar { gap:8px; }
body[data-view=desk] #record-toolbar label { display:flex; align-items:center; gap:8px; flex:1 1 100%; min-width:0; }
body[data-view=desk] #record-toolbar label select { flex:1; width:0; min-width:0; margin:0; }
body[data-view=desk][data-survey-tab=minor] #new-poi,
body[data-view=desk][data-survey-tab=poi] #new-ms { display:none; }
body[data-route-tab=basic] #route-composition,body[data-route-tab=basic] #route-assignments,
body[data-route-tab=composition] #pc-metadata,body[data-route-tab=composition] #route-assignments,
body[data-route-tab=assignments] #pc-metadata,body[data-route-tab=assignments] #route-composition { display:none; }
body[data-view=desk]:not([data-page=survey]) #working-ds,
body[data-view=desk][data-page=inspectors] #working-route,
body[data-view=desk][data-page=inspectors] #prefetch,
body[data-view=desk][data-page=map] #pc-save-actions { display:none; }
body[data-view=desk] #sync,body[data-view=desk] #save-device,
body[data-view=desk] #storage-state,body[data-view=desk] #persist-storage { display:none; }
.table-scroll { max-width:100%; margin:10px 0; overflow:auto; }
.table-scroll table { width:100%; border-collapse:collapse; font-size:13px; }
.table-scroll th { position:sticky; top:0; z-index:1; background:#edf3ef; }
.table-scroll td,.table-scroll th { padding:8px; overflow-wrap:normal; }
#pc-records input { min-width:130px; }
#pc-records { max-height:none; }
#pc-columns details label { display:inline-block; margin:5px 10px 5px 0; }
#pc-columns summary { font-size:12px; cursor:pointer; }
body[data-view=desk] .field-group { margin:10px 0; padding:10px; border-radius:6px; }
body[data-view=desk] .field-grid { gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-view=desk] .label { font-size:13px; }
body[data-view=desk] #photos { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:10px; margin:14px 0; }
body[data-view=desk] .photo-slot { min-width:0; }
body[data-view=desk] .photo-slot img { height:130px; }
body[data-view=desk] .photo-slot input { min-width:0; padding:4px; font-size:12px; }
body[data-view=desk] .save-bar { position:static; padding:10px 0 0; margin-top:10px; }
body[data-view=desk] .confirm { padding:10px; }
body[data-view=desk] #request-info { display:none; }
body[data-view=desk] .composition-row { display:flex; flex-wrap:wrap; align-items:end; gap:10px; padding:14px 0; }
body[data-view=desk] .composition-row>.wide { flex:1 1 100%; overflow-wrap:anywhere; font-weight:600; }
body[data-view=desk] .composition-row label { flex:1 1 130px; min-width:0; }
body[data-view=desk] .composition-row button { flex:0 1 auto; white-space:normal; }
#pc-metadata { display:grid; gap:14px; padding:14px 0; }
#pc-note { min-height:110px; }
.pc-route { display:flex; flex-wrap:wrap; gap:7px; padding:13px 0; border-bottom:1px solid var(--line); }
.pc-route>button:first-child { flex:1 1 100%; text-align:left; font-weight:650; overflow-wrap:anywhere; }
#pc-evaluation-table { max-height:none; }
.evaluation-matrix { min-width:560px; }
.evaluation-matrix th:first-child { min-width:180px; max-width:240px; }
.evaluation-matrix td { min-width:170px; vertical-align:top; }
.evaluation-matrix .automatic { font-size:12px; color:var(--muted); }
.evaluation-matrix input { margin-top:6px; }
.evaluation-matrix caption { text-align:left; font-weight:650; }
.assignment-person { padding:10px; margin:10px 0; border:1px solid var(--line); border-radius:6px; }
.assignment-person summary { font-weight:650; cursor:pointer; }
.assignment-row { display:grid; grid-template-columns:minmax(130px,1fr) minmax(130px,.8fr) minmax(0,1.5fr); gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.ds-checks label { display:inline-block; margin:4px 10px 4px 0; }
.ds-checks input { margin-right:6px; }
.access-layout { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1.5fr); gap:18px; align-items:start; }
body[data-view=desk] #inspector-panel { padding:18px; background:#f4f7f5; }
body[data-view=desk] .access-card { min-width:0; padding:18px; border:1px solid var(--line); border-radius:8px; background:white; }
.access-card h2 { margin:0 0 14px; }
#inspector-create { display:grid; gap:12px; margin:14px 0; }
#inspector-create button { justify-self:start; }
.access-card label { margin-bottom:12px; font-size:13px; }
.access-card input:read-only { background:#f1f5f2; }
.access-users { display:grid; gap:8px; margin-top:14px; }
.access-users button { display:grid; text-align:left; overflow-wrap:anywhere; }
.access-users button span { font-size:12px; color:var(--muted); }
.access-users button[aria-pressed=true] { border-color:var(--green); background:#e7f2ec; }
.inspector-settings { display:flex; flex-wrap:wrap; gap:12px; }
.inspector-settings label { flex:1 1 180px; min-width:0; }
#inspector-editor>h2 { margin-top:20px; }
#inspector-editor .assignment-person { padding:0; border:0; }
#inspector-editor .assignment-person>summary { display:none; }
#export-panel { width:100%; max-width:1100px; }
#export-panel fieldset { padding:14px; margin:14px 0; border:1px solid var(--line); border-radius:7px; }
#export-panel fieldset label { display:inline-block; max-width:100%; min-width:min(220px,100%); margin:6px 14px 6px 0; }
#export-panel legend { font-weight:650; }
#export-panel label input[type=checkbox] { margin-right:8px; }
#export-info { white-space:pre-line; overflow-wrap:anywhere; }
#export-zip { font-size:13px; color:var(--green-hover); }
#device-storage { flex:0 0 auto; padding:10px 14px; margin-top:auto; border-top:1px solid var(--line); font-size:12px; }
#device-storage summary { cursor:pointer; }
body[data-view=desk] #device-storage:not([open])>*:not(summary) { display:none; }
body[data-view=desk] footer { display:none; }
#external-view,#reference-acquisition,body[data-view=desk] #elevation-panel { display:none; }
body[data-view=desk][data-page=survey][data-survey-tab=elevation] #survey,
body[data-view=desk][data-page=survey][data-survey-tab=references] #survey { display:none; }
body[data-view=desk][data-page=survey][data-survey-tab=references] #external-view,
body[data-view=desk][data-page=survey][data-survey-tab=elevation] #elevation-panel,
body[data-view=desk][data-page=gpx][data-route-tab=references] #reference-acquisition { display:block; }
body[data-route-tab=references] #pc-metadata,
body[data-route-tab=references] #route-composition,
body[data-route-tab=references] #route-assignments { display:none; }
.reference-ds-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:13px 0; border-bottom:1px solid var(--line); }
.reference-ds-row p { flex-basis:100%; }
#elevation-panel .record-table-wrap { overflow:auto; }
#elevation-panel table { width:100%; border-collapse:collapse; font-size:13px; }
#elevation-panel th,#elevation-panel td { padding:8px; border-bottom:1px solid var(--line); }
#external-view { padding:16px; }
#reference-theme { max-width:100%; }
@container workpane (max-width:560px) {
  body[data-view=desk] .field-grid { grid-template-columns:1fr; }
  body[data-view=desk] .field-wide { grid-column:auto; }
  .assignment-row { grid-template-columns:1fr; }
  .access-layout { grid-template-columns:1fr; }
  body[data-view=desk] .toolbar label { min-width:0; flex-basis:100%; }
}
@container workpane (max-width:800px) {
  .access-layout { grid-template-columns:1fr; }
}
/* The field controller owns its scene layout; only hide PC-specific controls here. */
body[data-view=field] #pc-title,body[data-view=field] #pc-swap,
body[data-view=field] #pc-save-actions,body[data-view=field] #pc-layout-controls,
body[data-view=field] #working-ds button,body[data-view=field] #survey-tabs,
body[data-view=field] #pc-record-views { display:none; }
body[data-view=field] #pc-workspace,body[data-view=field] #pc-editor { display:contents; }
body[data-view=field] #elevation-panel,body[data-view=field] #external-view { display:none!important; }
@media(max-width:700px) {
  body[data-view=desk] main { padding:8px; gap:6px; }
  body[data-view=desk] #pc-toolbar h1 { flex-basis:100%; }
  body[data-view=desk] #pc-toolbar label { flex-basis:100%; max-width:none; min-width:0; }
  #pc-save-actions { margin-left:0; flex:1 1 100%; }
}
