/* Legacy stylesheet shim for PatchCanvas v5.1+
   Some pages still reference: assets/styles.css
   Keep this file to avoid broken styling after CSS split/move.
*/
@import url("css/app.css");
@import url("css/patchpanel.css");
@import url("css/presence.css");
@import url("css/merge_report.css");
@import url("css/ticketcanvas.css");

@import url("css/keycanvas.css");

/* GridCanvas live database status toast */
.gc-dbstatus-toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:10001;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(8,16,32,.80);
  color:rgba(232,238,252,.95);
  font:13px/1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  pointer-events:none;
  min-width:132px;
  justify-content:center;
  opacity:1;
  visibility:visible;
  transition:opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.gc-dbstatus-toast.gc-dbstatus-hidden{
  opacity:0;
  visibility:hidden;
  transform:translateX(-50%) translateY(8px);
}
.gc-dbstatus-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(148,163,184,.95);
  box-shadow:0 0 0 4px rgba(148,163,184,.10);
  flex:0 0 auto;
}
.gc-dbstatus-ok .gc-dbstatus-dot{
  background:rgba(34,197,94,.95);
  box-shadow:0 0 0 4px rgba(34,197,94,.10);
}
.gc-dbstatus-checking .gc-dbstatus-dot,
.gc-dbstatus-saving .gc-dbstatus-dot{
  background:rgba(96,165,250,.95);
  box-shadow:0 0 0 4px rgba(96,165,250,.12);
}
.gc-dbstatus-error .gc-dbstatus-dot{
  background:rgba(239,68,68,.95);
  box-shadow:0 0 0 4px rgba(239,68,68,.12);
}
.gc-dbstatus-offline .gc-dbstatus-dot,
.gc-dbstatus-warn .gc-dbstatus-dot,
.gc-dbstatus-conflict .gc-dbstatus-dot{
  background:rgba(245,158,11,.95);
  box-shadow:0 0 0 4px rgba(245,158,11,.12);
}
.gc-dbstatus-label{ white-space:nowrap; }
@media (max-width: 720px){
  .gc-dbstatus-toast{ bottom:12px; }
}


/* GridCanvas standard topbar alignment */
.pc-topbar{
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow);
  margin-bottom:14px;
}
.pc-topbar-left,
.pc-topbar-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.pc-topbar-center{
  flex:1 1 auto;
  min-width:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
}
.pc-topbar-title{
  font-size:13px;
  font-weight:800;
  letter-spacing:.2px;
  white-space:nowrap;
}
.pc-topbar-sub{
  max-width:620px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:12px;
}
.gc-chat-badge-hidden{ display:none !important; }
@media (max-width: 760px){
  .pc-topbar{ align-items:flex-start; flex-direction:column; }
  .pc-topbar-center{ align-items:flex-start; text-align:left; width:100%; }
}

/* GridCanvas autosave/status pill in app topbars */
.gc-autosave-state{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:12px;
  line-height:1;
  white-space:nowrap;
}
.gc-autosave-state.is-saving{border-color:rgba(106,169,255,.36);background:rgba(106,169,255,.08);color:rgba(219,234,254,.96);}
.gc-autosave-state.is-saved{border-color:rgba(34,197,94,.36);background:rgba(34,197,94,.08);color:rgba(220,252,231,.96);}
.gc-autosave-state.is-error{border-color:rgba(239,68,68,.42);background:rgba(239,68,68,.10);color:rgba(254,226,226,.96);}
.gc-autosave-state.is-conflict{border-color:rgba(245,158,11,.42);background:rgba(245,158,11,.10);color:rgba(254,243,199,.96);}

/* Standard app subpage layout: topbar plus loose function cards */
.gc-page-content{
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.gc-page-content > .card{
  width:100%;
}
.gc-utility-card .content{
  padding:14px;
}

/* Standard utility subpages (Audit / Versies / Projectbeheer) */
.gc-utility-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
  width:100%;
}
.gc-page-content .gc-utility-card{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.018));
  box-shadow:var(--shadow);
}
.gc-page-content .gc-utility-card > header{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
}
.gc-page-content .gc-utility-card > .content{
  background:rgba(0,0,0,.035);
}

/* PowerCanvas utility/settings pages: loose cards with the standard subpage surface */
.gc-page-content.power-settings-content .pc-flat-card{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.018));
  border-color:rgba(255,255,255,.085);
  box-shadow:var(--shadow);
}
.gc-page-content.power-settings-content .pc-flat-card > header{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
}
.gc-page-content.power-settings-content .pc-flat-card > .content{
  background:rgba(0,0,0,.035);
}

/* TicketCanvas settings: keep action feedback inside the relevant card. */
.tc-settings-flash{margin-bottom:12px}
