/* Subdivision360 Professional Community Operations Workspace
   Civilian enterprise UI foundation. This layer intentionally overrides legacy shell
   presentation without changing authorization, workflow, data, or provider behavior. */

:root{
  --pcow-canvas:#f3f5f7;
  --pcow-surface:#ffffff;
  --pcow-surface-subtle:#f7f9fa;
  --pcow-surface-selected:#eaf2f7;
  --pcow-border:#d7dee3;
  --pcow-border-strong:#bdc8cf;
  --pcow-text:#17232b;
  --pcow-muted:#60717b;
  --pcow-accent:#1f607d;
  --pcow-accent-hover:#194f67;
  --pcow-accent-soft:#e7f1f5;
  --pcow-focus:#2c7ea2;
  --pcow-success:#2d6b50;
  --pcow-warning:#8a5a16;
  --pcow-danger:#8c3740;
  --pcow-nav-width:252px;
  --pcow-topbar-height:58px;
  --pcow-status-height:30px;
  --pcow-radius:6px;
  --pcow-shadow:0 1px 2px rgba(24,37,46,.06),0 4px 12px rgba(24,37,46,.04);
}

html,body{background:var(--pcow-canvas);color:var(--pcow-text)}
body{font-family:var(--ui-font-sans);letter-spacing:0}

/* Application frame */
.app-shell{
  grid-template-columns:var(--pcow-nav-width) minmax(0,1fr);
  background:var(--pcow-canvas);
}
.app-shell>.sidebar{
  background:var(--pcow-surface);
  color:var(--pcow-text);
  border-right:1px solid var(--pcow-border);
  padding:10px 8px 8px;
  gap:10px;
}
.brand{
  min-height:56px;
  padding:7px 8px 11px;
  border-bottom:1px solid var(--pcow-border);
}
.brand strong{color:var(--pcow-text);font-size:15px;font-weight:700;letter-spacing:-.01em}
.brand span{color:var(--pcow-muted);font-size:11px;margin-top:1px}
.brand img{width:36px;height:36px}

.sidebar nav{gap:2px;padding-top:2px}
.sidebar nav button{
  color:#40525d;
  min-height:36px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:var(--pcow-radius);
  font-size:12px;
  font-weight:550;
  transition:background 120ms ease,border-color 120ms ease,color 120ms ease;
}
.sidebar nav button:hover{background:#f1f5f7;color:var(--pcow-text);border-color:#e5eaed}
.sidebar nav button.active{
  color:#154f69;
  background:var(--pcow-surface-selected);
  border-color:#c9dde7;
  box-shadow:inset 3px 0 0 var(--pcow-accent);
}
.sidebar-footer{
  color:var(--pcow-muted);
  border-top:1px solid var(--pcow-border);
  padding:10px 7px 2px;
  gap:5px;
}
.env-pill{
  color:#365565;
  background:#eef3f5;
  border:1px solid #d4dee3;
  border-radius:4px;
  padding:3px 6px;
  font-size:10px;
  letter-spacing:.06em;
}

.app-shell>main{
  grid-template-rows:var(--pcow-topbar-height) minmax(0,1fr) var(--pcow-status-height);
  background:var(--pcow-canvas);
}
.topbar{
  height:var(--pcow-topbar-height);
  min-height:var(--pcow-topbar-height);
  background:rgba(255,255,255,.98);
  border-bottom:1px solid var(--pcow-border);
  padding:7px 14px;
  box-shadow:0 1px 0 rgba(24,37,46,.02);
}
.topbar h1{color:var(--pcow-text);font-size:18px;font-weight:680;letter-spacing:-.015em}
.eyebrow{color:#667984;font-size:9px;letter-spacing:.09em;font-weight:750}
.user{text-align:right;gap:10px}
.user strong{color:var(--pcow-text);font-size:12px;font-weight:650}
.user span{color:var(--pcow-muted);font-size:10px}
.context-control{color:var(--pcow-muted)}
.context-control select{border-color:var(--pcow-border-strong);border-radius:4px;color:var(--pcow-text);background:#fff}

.content{
  max-width:none;
  height:100%;
  min-height:0;
  margin:0;
  padding:12px;
  overflow:auto;
  scrollbar-gutter:stable;
}

/* Persistent application status — informational only, never an authority indicator. */
.app-statusbar{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 12px;
  background:#eef2f4;
  border-top:1px solid var(--pcow-border);
  color:#536670;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
}
.app-statusbar .status-group{display:flex;align-items:center;gap:12px;min-width:0}
.app-statusbar .status-item{display:flex;align-items:center;gap:5px;min-width:0}
.app-statusbar .status-dot{width:7px;height:7px;border-radius:50%;background:#5f8a74;flex:0 0 auto}
.app-statusbar strong{font-weight:700;color:#334853}
.app-statusbar .truncate{overflow:hidden;text-overflow:ellipsis}

/* Workspace surfaces */
.panel,.metric,.login-card{
  background:var(--pcow-surface);
  border:1px solid var(--pcow-border);
  border-radius:var(--pcow-radius);
  box-shadow:var(--pcow-shadow);
}
.panel{padding:13px}
.hero-card{padding:15px}
.hero-card h2{color:var(--pcow-text);font-size:21px;letter-spacing:-.015em}
.hero-card p,.row p,.footer-note{color:var(--pcow-muted)}
.hero,.grid{gap:10px;margin-top:10px;margin-bottom:10px}
.metric-grid{gap:8px;margin:10px 0}
.metric{padding:10px 11px;box-shadow:none}
.metric span{color:var(--pcow-muted);font-size:10px;text-transform:uppercase;letter-spacing:.045em}
.metric strong{color:var(--pcow-text);font-size:21px;font-weight:680}
.panel-header{margin-bottom:9px}
.panel h3{color:var(--pcow-text);font-size:15px;font-weight:680}
.row{border-color:#e7ecef;padding:8px 0}
.row p{font-size:11px;line-height:1.4}

.badge,.chip{border-radius:4px;background:#edf2f4;color:#425863;border:1px solid #dce5e9}
.badge.warn{background:#fff6e8;color:var(--pcow-warning);border-color:#edd9b5}
.badge.block{background:#fff0f1;color:var(--pcow-danger);border-color:#eccfd3}
.notice{border-radius:5px;background:#f4f7f8;border-color:#dce5e9;color:#40545f}
.notice.block{background:#fff2f3;border-color:#ebd2d5;color:var(--pcow-danger)}

.ghost,.primary,.soft,.gis-toolbar button{
  min-height:32px;
  border-radius:4px;
  font-size:11px;
  font-weight:620;
}
.ghost,.soft,.gis-toolbar button{color:#334b58;background:#fff;border-color:var(--pcow-border-strong)}
.ghost:hover,.soft:hover,.gis-toolbar button:hover{background:#f3f6f7;border-color:#aebcc4}
.primary{background:var(--pcow-accent);border-color:var(--pcow-accent);color:#fff}
.primary:hover{background:var(--pcow-accent-hover);border-color:var(--pcow-accent-hover)}

.form-grid input,.form-grid select,.form-grid textarea,.gis-search input,.gis-panel select{
  border-radius:4px;
  border-color:var(--pcow-border-strong);
  color:var(--pcow-text);
}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.gis-search input:focus,.gis-panel select:focus{
  border-color:var(--pcow-focus);
  box-shadow:0 0 0 2px rgba(44,126,162,.12);
  outline:0;
}

.table{font-size:11px}
.table th{background:#f6f8f9;color:#5f717b;position:sticky;top:0;z-index:1}
.table th,.table td{border-color:#e3e9ec;padding:7px 8px}
.table tbody tr:hover{background:#f8fafb}

/* 2D GIS workspace: professional map framing, no 3D affordances. */
.map-shell,.gis-shell{border-radius:var(--pcow-radius);border-color:var(--pcow-border);background:#eef2f3}
.gis-toolbar{background:#f5f7f8;border-color:var(--pcow-border);padding:6px}
.gis-toolbar button[aria-pressed="true"]{background:var(--pcow-accent-soft);border-color:#a8c9d8;color:#164f68}
.gis-layout{grid-template-columns:minmax(0,1fr) 278px;background:#eef2f3}
.gis-map-frame{background:#e7ecee;border:0}
.gis-panel{background:#fff;border-color:var(--pcow-border);padding:10px;gap:10px}
.gis-panel fieldset{border-radius:4px;border-color:var(--pcow-border);padding:8px}
.gis-coordinate,.gis-scale{border-radius:3px;border-color:#cbd6db;color:#435862;box-shadow:0 1px 3px rgba(24,37,46,.08)}
.gis-selected,.gis-sources{border-color:#e1e7ea}

/* Accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--pcow-focus)!important;
  outline-offset:2px!important;
}

@media(max-width:1000px){
  .app-shell{grid-template-columns:minmax(0,1fr)}
  .app-shell>main{grid-template-rows:var(--pcow-topbar-height) minmax(0,1fr) var(--pcow-status-height)}
  .topbar{padding-left:64px}
  .content{padding:9px}
  .gis-layout{grid-template-columns:1fr}
  .gis-panel{border-left:0;border-top:1px solid var(--pcow-border)}
}
@media(max-width:700px){
  :root{--pcow-topbar-height:56px;--pcow-status-height:28px}
  .content{padding:7px}
  .app-statusbar{padding:0 8px}.app-statusbar .status-group:last-child{display:none}
  .panel{padding:11px}
}
@media(max-width:480px){
  .topbar{padding-left:58px;padding-right:8px}
  .app-statusbar .status-item:nth-child(n+3){display:none}
}
@media print{.app-statusbar{display:none!important}}
