:root {
  --app-ink: #281026;
  --app-wine: #74151d;
  --app-wine-dark: #4f0e16;
  --app-gold: #c58a45;
  --app-gold-soft: #f0c986;
  --app-cream: #fbf5ec;
  --app-paper: #fffdf9;
  --app-muted: #756772;
  --app-border: rgba(40, 16, 38, .11);
  --app-success: #167a58;
  --app-warning: #a76b09;
  --app-danger: #b43b42;
  --app-info: #315fa5;
  --app-shadow: 0 18px 55px rgba(40, 16, 38, .09);
  --app-sidebar: 272px;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  color: var(--app-ink);
  background: var(--app-cream);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-color: var(--app-wine) #efe4d5; scrollbar-width: thin; }
body { margin: 0; min-height: 100vh; color: var(--app-ink); background: var(--app-cream); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(197, 138, 69, .55); outline-offset: 3px; }
.app-skip-link { position: fixed; left: 16px; top: -80px; z-index: 9999; padding: .75rem 1rem; border-radius: 12px; background: #fff; box-shadow: var(--app-shadow); font-weight: 800; text-decoration: none; transition: top .2s; }
.app-skip-link:focus { top: 16px; }
.app-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .76rem 1rem; border: 1px solid transparent; border-radius: 14px; font-weight: 800; cursor: pointer; text-decoration: none; transition: transform .18s, box-shadow .18s, background .18s, border-color .18s; }
.app-button:hover { transform: translateY(-2px); }
.app-button-primary { color: #fff; background: var(--app-wine); box-shadow: 0 12px 22px rgba(116, 21, 29, .22); }
.app-button-primary:hover { background: var(--app-wine-dark); }
.app-button-secondary { color: var(--app-ink); background: #fff; border-color: var(--app-border); }
.app-button-danger { color: #fff; background: var(--app-danger); }
.app-button-small { min-height: 36px; padding: .55rem .75rem; border-radius: 11px; font-size: .78rem; }
.catalog-toolbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; flex-wrap: wrap; margin-left: auto; }
.resource-toolbar { display: flex; align-items: end; justify-content: space-between; gap: .75rem; padding: .85rem; border: 1px solid var(--app-border); border-radius: 18px; background: #fff; box-shadow: 0 10px 26px rgba(40,16,38,.05); }
.resource-toolbar label { display: grid; gap: .25rem; color: var(--app-muted); font-size: .68rem; font-weight: 800; }
.resource-toolbar select { min-height: 40px; border: 1px solid var(--app-border); border-radius: 12px; background: #fff; padding: 0 .75rem; color: inherit; }

/* Login */
.auth-page { background: var(--app-cream); }
.auth-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(420px, .95fr); }
.auth-brand-panel { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: clamp(2rem, 5vw, 4.8rem); color: #fff; background: radial-gradient(circle at 90% 10%, rgba(240, 201, 134, .18), transparent 28%), linear-gradient(145deg, #281026, #4f0e16 62%, #74151d); }
.auth-brand-panel::before { content: ""; position: absolute; right: -12%; bottom: -20%; width: 58%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.035), 0 0 0 160px rgba(255,255,255,.025); }
.auth-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .75rem; width: fit-content; color: #fff; text-decoration: none; font-weight: 800; letter-spacing: .04em; }
.auth-brand img { width: 58px; height: 58px; object-fit: contain; }
.auth-brand-copy { position: relative; z-index: 1; max-width: 670px; margin: auto 0 2.5rem; }
.auth-eyebrow { display: block; margin-bottom: .8rem; color: var(--app-gold-soft); font-size: .75rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.auth-brand-copy h1 { max-width: 11ch; margin: 0 0 1.2rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(3rem, 6vw, 5.7rem); line-height: .94; letter-spacing: -.045em; }
.auth-brand-copy p { max-width: 58ch; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.7; }
.auth-feature-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1.5rem; }
.auth-feature-grid article { display: grid; grid-template-columns: 38px 1fr; gap: .1rem .8rem; padding: .9rem; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: rgba(255,255,255,.055); backdrop-filter: blur(8px); }
.auth-feature-grid i { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--app-gold-soft); background: rgba(240,201,134,.1); font-size: 1.15rem; }
.auth-feature-grid strong { font-size: .86rem; }
.auth-feature-grid span { color: rgba(255,255,255,.6); font-size: .72rem; line-height: 1.4; }
.auth-security-note { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: .55rem; margin: 0; color: rgba(255,255,255,.56); font-size: .72rem; line-height: 1.5; }
.auth-security-note i { color: var(--app-gold-soft); font-size: 1rem; }
.auth-form-panel { display: grid; place-items: center; padding: clamp(1.4rem, 4vw, 4rem); background: var(--app-paper); }
.auth-form-wrap { width: min(100%, 480px); }
.auth-mobile-brand { display: none; width: 68px; margin-bottom: 2rem; }
.auth-form-head > span { color: var(--app-wine); font-size: .73rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.auth-form-head h2 { margin: .45rem 0 .55rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(2.15rem, 4vw, 3.2rem); line-height: 1; }
.auth-form-head p { margin: 0 0 1.7rem; color: var(--app-muted); line-height: 1.6; }
.auth-alert { margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid rgba(180,59,66,.22); border-radius: 14px; color: #8d262c; background: rgba(180,59,66,.08); font-size: .84rem; }
.auth-form { display: grid; gap: 1rem; }
.auth-form label > span:first-child { display: block; margin-bottom: .42rem; font-size: .78rem; font-weight: 800; }
.auth-input { min-height: 50px; display: flex; align-items: center; gap: .65rem; padding: 0 .9rem; border: 1px solid var(--app-border); border-radius: 15px; background: #fff; transition: border-color .18s, box-shadow .18s; }
.auth-input:focus-within { border-color: rgba(116,21,29,.55); box-shadow: 0 0 0 4px rgba(116,21,29,.08); }
.auth-input i { color: var(--app-muted); }
.auth-input input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; }
.auth-input button { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 9px; color: var(--app-muted); background: transparent; cursor: pointer; }
.auth-form-options { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.auth-check { display: inline-flex; align-items: center; gap: .5rem; color: var(--app-muted); font-size: .8rem; }
.auth-link-button { padding: 0; border: 0; color: var(--app-wine); background: transparent; font-size: .78rem; font-weight: 800; cursor: pointer; }
.auth-submit { width: 100%; margin-top: .2rem; }
.auth-submit.is-loading { opacity: .7; cursor: wait; }
.demo-access { display: grid; gap: .65rem; margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px solid var(--app-border); }
.demo-access-head { display: flex; justify-content: space-between; color: var(--app-muted); font-size: .72rem; }
.demo-access-head span { font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.demo-account { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .8rem; width: 100%; padding: .75rem; border: 1px solid var(--app-border); border-radius: 15px; text-align: left; color: var(--app-ink); background: #fff; cursor: pointer; transition: border-color .18s, transform .18s; }
.demo-account:hover { transform: translateY(-2px); border-color: rgba(116,21,29,.35); }
.demo-account-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.15rem; }
.demo-account strong, .demo-account small { display: block; }
.demo-account strong { font-size: .84rem; }
.demo-account small { margin-top: .14rem; color: var(--app-muted); font-size: .7rem; }
.auth-return { margin: 1.4rem 0 0; text-align: center; font-size: .8rem; }
.auth-return a { color: var(--app-muted); text-decoration: none; }

/* Dashboard shell */
.dashboard-page { overflow: hidden; }
.app-loading { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; align-content: center; gap: .9rem; background: var(--app-cream); transition: opacity .35s, visibility .35s; }
.app-loading.is-hidden { opacity: 0; visibility: hidden; }
.app-loading img { width: 90px; height: 90px; object-fit: contain; }
.app-loading span { width: 30px; height: 30px; border: 3px solid rgba(116,21,29,.16); border-top-color: var(--app-wine); border-radius: 50%; animation: app-spin .8s linear infinite; }
.app-loading p { margin: 0; color: var(--app-muted); font-size: .78rem; }
@keyframes app-spin { to { transform: rotate(360deg); } }
.dashboard-shell { min-height: 100vh; display: grid; grid-template-columns: var(--app-sidebar) minmax(0, 1fr); }
.dashboard-sidebar { position: relative; z-index: 80; height: 100vh; display: flex; flex-direction: column; overflow: hidden; color: #fff; background: linear-gradient(180deg, #281026, #35112f 62%, #4f0e16); transition: width .22s, transform .22s; }
.dashboard-brand { min-height: 84px; display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.dashboard-brand img { width: 58px; height: 58px; object-fit: contain; }
.dashboard-brand button, .dashboard-mobile-menu { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 12px; color: rgba(255,255,255,.74); background: rgba(255,255,255,.065); cursor: pointer; }
.dashboard-nav { flex: 1; overflow-y: auto; padding: .65rem .75rem; scrollbar-width: none; }
.dashboard-nav::-webkit-scrollbar { display: none; }
.dashboard-nav a { display: flex; align-items: center; gap: .8rem; min-height: 44px; margin-bottom: .2rem; padding: .68rem .75rem; border-radius: 13px; color: rgba(255,255,255,.67); font-size: .78rem; font-weight: 700; text-decoration: none; transition: color .16s, background .16s, transform .16s; }
.dashboard-nav a i { width: 20px; text-align: center; font-size: 1.08rem; }
.dashboard-nav a:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(2px); }
.dashboard-nav a.is-active { color: #fff; background: linear-gradient(90deg, rgba(197,138,69,.25), rgba(255,255,255,.08)); box-shadow: inset 3px 0 0 var(--app-gold-soft); }
.dashboard-nav-badge { margin-left: auto; min-width: 20px; padding: .15rem .35rem; border-radius: 999px; color: var(--app-wine-dark); background: var(--app-gold-soft); text-align: center; font-size: .62rem; }
.dashboard-sidebar-foot { display: grid; gap: .15rem; padding: .75rem; border-top: 1px solid rgba(255,255,255,.08); }
.dashboard-sidebar-foot a, .dashboard-sidebar-foot button { display: flex; align-items: center; gap: .8rem; min-height: 42px; padding: .65rem .75rem; border: 0; border-radius: 12px; color: rgba(255,255,255,.58); background: transparent; text-decoration: none; cursor: pointer; font-size: .76rem; }
.dashboard-sidebar-foot a:hover, .dashboard-sidebar-foot button:hover { color: #fff; background: rgba(255,255,255,.06); }
.dashboard-workspace { min-width: 0; height: 100vh; display: grid; grid-template-rows: 82px minmax(0, 1fr); overflow: hidden; }
.dashboard-topbar { position: relative; z-index: 60; display: flex; align-items: center; gap: 1rem; padding: .9rem clamp(1rem, 2.5vw, 2rem); border-bottom: 1px solid var(--app-border); background: rgba(255,253,249,.92); backdrop-filter: blur(18px); }
.dashboard-mobile-menu { display: none; color: var(--app-ink); background: #fff; border: 1px solid var(--app-border); }
.dashboard-page-title { min-width: 155px; }
.dashboard-page-title span { display: block; color: var(--app-wine); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.dashboard-page-title h1 { margin: .15rem 0 0; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.25rem, 2vw, 1.8rem); line-height: 1; }
.dashboard-search { position: relative; width: min(420px, 35vw); display: flex; align-items: center; gap: .55rem; margin-left: auto; padding: 0 .75rem; min-height: 42px; border: 1px solid var(--app-border); border-radius: 13px; background: #fff; }
.dashboard-search i { color: var(--app-muted); }
.dashboard-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: .78rem; }
.dashboard-search-results { position: absolute; z-index: 95; top: calc(100% + .45rem); left: 0; right: 0; display: grid; gap: .25rem; padding: .45rem; border: 1px solid var(--app-border); border-radius: 15px; background: #fff; box-shadow: 0 18px 45px rgba(40,16,38,.14); }
.dashboard-search-results[hidden] { display: none; }
.dashboard-search-results button { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: .55rem; width: 100%; padding: .5rem; border: 0; border-radius: 11px; color: var(--app-ink); background: transparent; text-align: left; cursor: pointer; }
.dashboard-search-results button:hover { background: rgba(116,21,29,.06); }
.dashboard-search-results button>i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--app-wine); background: rgba(116,21,29,.07); }
.dashboard-search-results strong,.dashboard-search-results small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-search-results strong { font-size: .72rem; }
.dashboard-search-results small,.dashboard-search-results p { margin: 0; color: var(--app-muted); font-size: .6rem; }
.dashboard-top-actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex: 0 0 auto; }
.dashboard-icon-button { position: relative; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--app-border); border-radius: 13px; color: var(--app-ink); background: #fff; cursor: pointer; }
.dashboard-icon-button > span { position: absolute; right: -3px; top: -3px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 4px; border: 2px solid var(--app-paper); border-radius: 999px; color: #fff; background: var(--app-danger); font-size: .56rem; }
.dashboard-user-button { display: flex; align-items: center; gap: .65rem; padding: .35rem .45rem .35rem .35rem; border: 1px solid var(--app-border); border-radius: 14px; color: var(--app-ink); background: #fff; cursor: pointer; }
.dashboard-avatar { width: 34px; height: 34px; display: grid; place-items: center; overflow: hidden; border-radius: 11px; color: #fff; background: var(--app-wine); font-weight: 900; }
.dashboard-avatar img { width: 100%; height: 100%; object-fit: cover; }
.dashboard-user-copy { min-width: 0; text-align: left; }
.dashboard-user-copy strong, .dashboard-user-copy small { display: block; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-user-copy strong { font-size: .73rem; }
.dashboard-user-copy small { margin-top: .1rem; color: var(--app-muted); font-size: .61rem; }
.dashboard-main { overflow-y: auto; padding: clamp(1rem, 2.6vw, 2rem); scroll-behavior: smooth; }
.dashboard-content-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.dashboard-content-head h2 { margin: 0; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1; }
.dashboard-content-head p { max-width: 62ch; margin: .45rem 0 0; color: var(--app-muted); font-size: .86rem; line-height: 1.55; }
.dashboard-content-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.dashboard-content { min-width: 0; }

/* Dashboard components */
.app-grid { display: grid; gap: 1rem; }
.app-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.app-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.app-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.app-metric-card, .app-card { min-width: 0; border: 1px solid var(--app-border); border-radius: 22px; background: rgba(255,253,249,.95); box-shadow: 0 10px 30px rgba(40,16,38,.045); }
.app-metric-card { position: relative; overflow: hidden; padding: 1.05rem; }
.app-metric-card::after { content: ""; position: absolute; inset: auto -25px -35px auto; width: 90px; height: 90px; border-radius: 50%; background: rgba(197,138,69,.08); }
.app-metric-head { display: flex; justify-content: space-between; align-items: center; gap: .7rem; color: var(--app-muted); font-size: .7rem; font-weight: 800; }
.app-metric-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.05rem; }
.app-metric-value { display: block; margin: .75rem 0 .2rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1; }
.app-metric-note { color: var(--app-muted); font-size: .67rem; }
.app-card { padding: 1rem; }
.app-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.app-card-head h3 { margin: 0; font-family: "Fraunces", Georgia, serif; font-size: 1.25rem; }
.app-card-head p { margin: .25rem 0 0; color: var(--app-muted); font-size: .72rem; }
.app-card-link { border: 0; color: var(--app-wine); background: transparent; font-size: .72rem; font-weight: 900; cursor: pointer; }
.app-project-card { display: flex; flex-direction: column; padding: 1rem; }
.app-project-top { display: flex; justify-content: space-between; gap: .75rem; }
.app-project-client { display: flex; align-items: center; gap: .65rem; color: var(--app-muted); font-size: .68rem; }
.app-project-client img { width: 34px; height: 34px; object-fit: contain; border: 1px solid var(--app-border); border-radius: 10px; background: #fff; }
.app-project-card h3 { margin: .85rem 0 .45rem; font-size: 1rem; }
.app-project-card p { margin: 0; color: var(--app-muted); font-size: .75rem; line-height: 1.5; }
.app-progress { height: 8px; margin: 1rem 0 .45rem; overflow: hidden; border-radius: 999px; background: rgba(40,16,38,.08); }
.app-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--app-wine), var(--app-gold)); }
.app-progress-meta { display: flex; justify-content: space-between; color: var(--app-muted); font-size: .66rem; }
.app-project-actions { display: flex; gap: .5rem; margin-top: 1rem; }
.app-status { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; padding: .3rem .55rem; border-radius: 999px; font-size: .63rem; font-weight: 900; white-space: nowrap; }
.app-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.app-status-success { color: #12694d; background: rgba(22,122,88,.1); }
.app-status-warning { color: #8c5b08; background: rgba(167,107,9,.12); }
.app-status-danger { color: #9d3037; background: rgba(180,59,66,.1); }
.app-status-info { color: #315f94; background: rgba(49,95,165,.1); }
.app-status-neutral { color: #675c65; background: rgba(40,16,38,.075); }
.app-list { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.app-list-item { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: .75rem; padding: .72rem .2rem; border-bottom: 1px solid rgba(40,16,38,.07); }
.app-list-item:last-child { border-bottom: 0; }
.app-list-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--app-wine); background: rgba(116,21,29,.075); }
.app-list-copy { min-width: 0; }
.app-list-copy strong, .app-list-copy span { display: block; }
.app-list-copy strong { overflow: hidden; text-overflow: ellipsis; font-size: .76rem; }
.app-list-copy span { margin-top: .18rem; color: var(--app-muted); font-size: .65rem; line-height: 1.35; }
.app-list-aside { color: var(--app-muted); font-size: .64rem; text-align: right; }
.app-table-wrap { overflow-x: auto; border: 1px solid var(--app-border); border-radius: 20px; background: var(--app-paper); }
.app-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.app-table th { padding: .75rem .85rem; color: var(--app-muted); background: rgba(40,16,38,.035); font-size: .64rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.app-table td { padding: .78rem .85rem; border-top: 1px solid rgba(40,16,38,.07); font-size: .72rem; vertical-align: middle; }
.app-table td strong { display: block; font-size: .75rem; }
.app-table td small { color: var(--app-muted); }
.app-table button { border: 0; color: var(--app-wine); background: transparent; font-size: .7rem; font-weight: 900; cursor: pointer; }
.app-empty { display: grid; place-items: center; min-height: 240px; padding: 2rem; border: 1px dashed rgba(40,16,38,.18); border-radius: 22px; text-align: center; color: var(--app-muted); }
.app-empty i { font-size: 2rem; color: var(--app-gold); }
.app-empty h3 { margin: .7rem 0 .35rem; color: var(--app-ink); }
.app-empty p { max-width: 45ch; margin: 0; font-size: .78rem; line-height: 1.5; }
.app-chart { display: flex; align-items: end; gap: .5rem; height: 190px; padding: 1rem .3rem .2rem; }
.app-chart-bar { flex: 1; min-width: 18px; position: relative; height: var(--bar-height); border-radius: 9px 9px 3px 3px; background: linear-gradient(180deg, var(--app-gold), var(--app-wine)); }
.app-chart-bar span { position: absolute; left: 50%; bottom: -1.35rem; transform: translateX(-50%); color: var(--app-muted); font-size: .58rem; white-space: nowrap; }
.app-filter-bar { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.app-filter { min-height: 36px; padding: .48rem .7rem; border: 1px solid var(--app-border); border-radius: 999px; color: var(--app-muted); background: #fff; cursor: pointer; font-size: .7rem; font-weight: 800; }
.app-filter.is-active { color: #fff; border-color: var(--app-wine); background: var(--app-wine); }
.app-file-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.app-file { padding: .85rem; border: 1px solid var(--app-border); border-radius: 17px; background: #fff; }
.app-file i { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: .7rem; border-radius: 13px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.15rem; }
.app-file strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .74rem; }
.app-file span { display: block; margin-top: .28rem; color: var(--app-muted); font-size: .63rem; }
.app-message-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); min-height: 560px; overflow: hidden; border: 1px solid var(--app-border); border-radius: 22px; background: #fff; }
.app-conversation-list { padding: .7rem; border-right: 1px solid var(--app-border); }
.app-conversation { width: 100%; display: grid; grid-template-columns: 36px 1fr; gap: .65rem; padding: .7rem; border: 0; border-radius: 13px; text-align: left; background: transparent; cursor: pointer; }
.app-conversation.is-active { background: rgba(116,21,29,.075); }
.app-conversation i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; color: var(--app-wine); background: rgba(116,21,29,.08); }
.app-conversation strong, .app-conversation small { display: block; }
.app-conversation strong { font-size: .7rem; }
.app-conversation small { margin-top: .16rem; color: var(--app-muted); font-size: .61rem; }
.app-chat { min-width: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.app-chat-head { padding: .85rem 1rem; border-bottom: 1px solid var(--app-border); }
.app-chat-head strong { font-size: .8rem; }
.app-chat-messages { display: flex; flex-direction: column; gap: .6rem; overflow-y: auto; padding: 1rem; background: rgba(251,245,236,.55); }
.app-message { max-width: min(75%, 560px); padding: .7rem .85rem; border-radius: 16px 16px 16px 4px; background: #fff; box-shadow: 0 5px 15px rgba(40,16,38,.045); }
.app-message.is-own { align-self: flex-end; color: #fff; border-radius: 16px 16px 4px 16px; background: var(--app-wine); }
.app-message strong { display: block; margin-bottom: .28rem; font-size: .62rem; opacity: .75; }
.app-message p { margin: 0; font-size: .72rem; line-height: 1.5; }
.app-message time { display: block; margin-top: .3rem; font-size: .55rem; opacity: .58; }
.app-chat-form { display: flex; gap: .55rem; padding: .75rem; border-top: 1px solid var(--app-border); }
.app-chat-form textarea { min-height: 44px; max-height: 120px; flex: 1; resize: vertical; padding: .7rem; border: 1px solid var(--app-border); border-radius: 13px; outline: 0; }
.app-chat-form button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 13px; color: #fff; background: var(--app-wine); cursor: pointer; }

/* Popovers, drawers, dialogs */
.dashboard-popover { position: fixed; z-index: 110; top: 72px; right: 1rem; width: min(360px, calc(100vw - 2rem)); padding: .7rem; border: 1px solid var(--app-border); border-radius: 18px; background: #fff; box-shadow: var(--app-shadow); }
.dashboard-user-menu { width: 210px; }
.dashboard-user-menu a, .dashboard-user-menu button { width: 100%; display: flex; align-items: center; gap: .65rem; padding: .7rem; border: 0; border-radius: 11px; color: var(--app-ink); background: transparent; text-decoration: none; cursor: pointer; font-size: .75rem; }
.dashboard-user-menu a:hover, .dashboard-user-menu button:hover { background: rgba(40,16,38,.05); }
.dashboard-notification-head { display: flex; justify-content: space-between; align-items: center; padding: .45rem .5rem .7rem; }
.dashboard-notification-head strong { font-size: .82rem; }
.dashboard-notification-item { display: grid; grid-template-columns: 34px 1fr; gap: .65rem; padding: .65rem .5rem; border-top: 1px solid rgba(40,16,38,.07); }
.dashboard-notification-item i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--app-wine); background: rgba(116,21,29,.08); }
.dashboard-notification-item strong, .dashboard-notification-item span { display: block; }
.dashboard-notification-item strong { font-size: .69rem; }
.dashboard-notification-item span { margin-top: .2rem; color: var(--app-muted); font-size: .61rem; line-height: 1.35; }
.dashboard-overlay { position: fixed; inset: 0; z-index: 70; background: rgba(20,8,20,.48); backdrop-filter: blur(2px); }
.app-drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; pointer-events: none; }
.app-drawer.is-open { visibility: visible; pointer-events: auto; }
.app-drawer-backdrop { position: absolute; inset: 0; opacity: 0; background: rgba(20,8,20,.45); transition: opacity .25s; }
.app-drawer.is-open .app-drawer-backdrop { opacity: 1; }
.app-drawer-panel { position: absolute; top: 0; right: 0; width: min(720px, 94vw); height: 100%; overflow-y: auto; padding: clamp(1.2rem, 3vw, 2rem); transform: translateX(100%); background: var(--app-paper); box-shadow: -20px 0 60px rgba(40,16,38,.18); transition: transform .28s ease; }
.app-drawer.is-open .app-drawer-panel { transform: translateX(0); }
.app-close-button { display: grid; place-items: center; width: 42px; height: 42px; margin-left: auto; padding: 0; border: 1px solid var(--app-border); border-radius: 13px; color: var(--app-ink); background: #fff; cursor: pointer; }
.app-dialog { width: min(560px, calc(100vw - 2rem)); max-height: 90vh; overflow-y: auto; padding: 1.2rem; border: 1px solid var(--app-border); border-radius: 24px; background: var(--app-paper); box-shadow: var(--app-shadow); }
.app-dialog::backdrop { background: rgba(20,8,20,.48); backdrop-filter: blur(3px); }
.app-dialog > form { position: sticky; top: 0; z-index: 2; height: 0; }
.app-form { display: grid; gap: .9rem; margin-top: .3rem; }
.app-form h2 { margin: 0; padding-right: 3rem; font-family: "Fraunces", Georgia, serif; font-size: 1.8rem; }
.app-form p { margin: -.35rem 0 .35rem; color: var(--app-muted); font-size: .76rem; line-height: 1.5; }
.app-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.app-form label { display: grid; gap: .35rem; color: var(--app-ink); font-size: .72rem; font-weight: 800; }
.app-form input, .app-form select, .app-form textarea { width: 100%; padding: .72rem .8rem; border: 1px solid var(--app-border); border-radius: 13px; outline: 0; background: #fff; }
.app-form textarea { min-height: 110px; resize: vertical; }
.app-form-actions { display: flex; justify-content: flex-end; gap: .55rem; margin-top: .3rem; }
.app-toast-region { position: fixed; z-index: 9999; right: 1rem; bottom: 1rem; display: grid; gap: .55rem; pointer-events: none; }
.app-toast { max-width: 360px; padding: .8rem 1rem; transform: translateY(12px); opacity: 0; border-radius: 14px; color: #fff; background: var(--app-ink); box-shadow: var(--app-shadow); font-size: .76rem; line-height: 1.45; transition: opacity .2s, transform .2s; }
.app-toast.is-visible { opacity: 1; transform: translateY(0); }
.dashboard-mobile-nav { display: none; }
.drawer-head h2 { margin: .3rem 0 .5rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.7rem); line-height: 1; }
.drawer-head p { margin: 0; color: var(--app-muted); line-height: 1.55; }
.drawer-section { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--app-border); }
.drawer-section h3 { margin: 0 0 .75rem; font-size: .84rem; text-transform: uppercase; letter-spacing: .08em; }
.drawer-stat-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.drawer-stat { padding: .8rem; border: 1px solid var(--app-border); border-radius: 15px; background: #fff; }
.drawer-stat strong, .drawer-stat span { display: block; }
.drawer-stat strong { font-family: "Fraunces", Georgia, serif; font-size: 1.35rem; }
.drawer-stat span { margin-top: .2rem; color: var(--app-muted); font-size: .63rem; }

/* public navbar access action */
.nav-account { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: .6rem .85rem !important; border: 1px solid rgba(40,16,38,.15); border-radius: 999px; color: #281026 !important; background: rgba(255,255,255,.62); font-weight: 800 !important; }

@media (max-width: 1120px) {
  .app-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .app-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .app-file-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-search { width: min(320px, 28vw); }
}
@media (max-width: 900px) {
  .auth-layout { grid-template-columns: 1fr; }
  .auth-brand-panel { min-height: 420px; }
  .auth-brand-copy { margin-top: 4rem; }
  .dashboard-shell { grid-template-columns: 1fr; }
  .dashboard-sidebar { position: fixed; left: 0; top: 0; width: min(300px, 88vw); transform: translateX(-102%); }
  .dashboard-sidebar.is-open { transform: translateX(0); }
  .dashboard-mobile-menu { display: grid; }
  .dashboard-workspace { height: 100vh; }
  .dashboard-search { display: none; }
  .dashboard-user-copy { display: none; }
  .dashboard-topbar { padding-inline: 1rem; }
  .dashboard-page-title { margin-right: auto; }
  .app-grid-2, .app-grid-3 { grid-template-columns: 1fr; }
  .dashboard-mobile-nav { position: fixed; z-index: 65; left: .75rem; right: .75rem; bottom: .7rem; display: grid; grid-template-columns: repeat(5,1fr); padding: .4rem; border: 1px solid var(--app-border); border-radius: 18px; background: rgba(255,253,249,.96); box-shadow: var(--app-shadow); backdrop-filter: blur(14px); }
  .dashboard-mobile-nav a { display: grid; place-items: center; gap: .18rem; min-height: 48px; border-radius: 12px; color: var(--app-muted); text-decoration: none; font-size: .55rem; font-weight: 800; }
  .dashboard-mobile-nav a i { font-size: 1.1rem; }
  .dashboard-mobile-nav a.is-active { color: #fff; background: var(--app-wine); }
  .dashboard-main { padding-bottom: 6rem; }
}
@media (max-width: 640px) {
  .auth-brand-panel { display: none; }
  .auth-form-panel { min-height: 100vh; align-items: start; padding: 1.4rem 1rem 2rem; }
  .auth-mobile-brand { display: block; }
  .auth-form-wrap { margin-top: 1rem; }
  .auth-feature-grid { grid-template-columns: 1fr; }
  .dashboard-topbar { min-height: 72px; }
  .dashboard-workspace { grid-template-rows: 72px minmax(0,1fr); }
  .dashboard-page-title span { display: none; }
  .dashboard-icon-button[data-quick-create] { display: none; }
  .dashboard-user-button > i { display: none; }
  .dashboard-main { padding: 1rem .8rem 6rem; }
  .dashboard-content-head { align-items: flex-start; flex-direction: column; }
  .dashboard-content-actions { width: 100%; }
  .dashboard-content-actions .app-button { flex: 1; }
  .app-grid-4 { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .app-metric-card { padding: .8rem; border-radius: 18px; }
  .app-metric-value { font-size: 1.7rem; }
  .app-card { border-radius: 18px; }
  .app-file-grid { grid-template-columns: 1fr; }
  .app-message-layout { grid-template-columns: 1fr; min-height: 600px; }
  .app-conversation-list { display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--app-border); }
  .app-conversation { min-width: 220px; }
  .app-message { max-width: 88%; }
  .app-form-grid, .drawer-stat-grid { grid-template-columns: 1fr; }
  .dashboard-popover { top: 66px; right: .5rem; width: calc(100vw - 1rem); }
}
@media (max-width: 410px) {
  .app-grid-4 { grid-template-columns: 1fr; }
  .dashboard-mobile-nav { left: .4rem; right: .4rem; }
  .dashboard-mobile-nav a { font-size: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Block 0: definitive application shell */
:root { --app-sidebar-collapsed: 88px; }
.app-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.dashboard-shell,
.dashboard-sidebar,
.dashboard-workspace { min-height: 100dvh; }
.dashboard-sidebar,
.dashboard-workspace { height: 100dvh; }
.dashboard-search-toggle { display: none; }
.dashboard-mobile-search { position: relative; z-index: 55; padding: .55rem 1rem; border-bottom: 1px solid var(--app-border); background: rgba(255,253,249,.96); }
.dashboard-mobile-search label { min-height: 46px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; padding: 0 .75rem; border: 1px solid var(--app-border); border-radius: 14px; background: #fff; }
.dashboard-mobile-search input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--app-ink); background: transparent; }
.dashboard-mobile-search button { width: 36px; height: 36px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 10px; color: var(--app-muted); background: transparent; cursor: pointer; }
.dashboard-search-results-mobile { position: static; margin-top: .45rem; }
.dashboard-route-state { min-height: min(520px, 62vh); display: grid; place-items: center; padding: clamp(1.2rem, 5vw, 3.5rem); border: 1px dashed rgba(40,16,38,.16); border-radius: 24px; text-align: center; background: rgba(255,255,255,.62); }
.dashboard-route-state > div { max-width: 520px; }
.dashboard-route-state i { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 20px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.65rem; }
.dashboard-route-state h3 { margin: 0; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.dashboard-route-state p { margin: .65rem auto 1.2rem; color: var(--app-muted); line-height: 1.65; }
.has-mobile-overlay { overflow: hidden; }

@media (min-width: 901px) {
  body.is-sidebar-collapsed .dashboard-shell { grid-template-columns: var(--app-sidebar-collapsed) minmax(0,1fr); }
  body.is-sidebar-collapsed .dashboard-brand { justify-content: center; padding-inline: .65rem; }
  body.is-sidebar-collapsed .dashboard-brand a { display: none; }
  body.is-sidebar-collapsed .dashboard-nav { padding-inline: .65rem; }
  body.is-sidebar-collapsed .dashboard-nav a { justify-content: center; padding-inline: .65rem; }
  body.is-sidebar-collapsed .dashboard-nav a span:not(.dashboard-nav-badge),
  body.is-sidebar-collapsed .dashboard-sidebar-foot span { display: none; }
  body.is-sidebar-collapsed .dashboard-nav-badge { position: absolute; right: 4px; top: 4px; min-width: 17px; height: 17px; padding: 0 3px; display: grid; place-items: center; }
  body.is-sidebar-collapsed .dashboard-nav a { position: relative; }
  body.is-sidebar-collapsed .dashboard-sidebar-foot a,
  body.is-sidebar-collapsed .dashboard-sidebar-foot button { justify-content: center; }
}

@media (max-width: 900px) {
  .dashboard-search-toggle { display: grid; }
  .dashboard-workspace { grid-template-rows: 82px auto minmax(0,1fr); }
  .dashboard-mobile-nav { padding-bottom: calc(.4rem + env(safe-area-inset-bottom)); bottom: max(.45rem, env(safe-area-inset-bottom)); }
  .dashboard-main { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }
  .dashboard-sidebar { padding-bottom: env(safe-area-inset-bottom); }
  .dashboard-sidebar.is-open { box-shadow: 25px 0 70px rgba(20,8,20,.32); }
  .dashboard-topbar { padding-top: max(.9rem, env(safe-area-inset-top)); }
}

@media (max-width: 640px) {
  .dashboard-workspace { grid-template-rows: 72px auto minmax(0,1fr); }
  .dashboard-top-actions { margin-left: auto; }
  .dashboard-search-toggle { display: grid; }
  .dashboard-mobile-nav { left: .5rem; right: .5rem; border-radius: 16px; }
  .dashboard-mobile-nav a { min-width: 0; overflow: hidden; }
  .dashboard-mobile-nav a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-dialog { width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); border-radius: 20px; }
  .app-drawer-panel { width: 100%; max-width: none; padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
  .app-toast-region { left: .65rem; right: .65rem; bottom: calc(5.8rem + env(safe-area-inset-bottom)); }
  .app-toast { max-width: none; }
}

@media (max-width: 380px) {
  .dashboard-topbar { gap: .45rem; padding-inline: .65rem; }
  .dashboard-icon-button,
  .dashboard-mobile-menu { width: 40px; height: 40px; }
  .dashboard-page-title { min-width: 0; }
  .dashboard-page-title h1 { max-width: 132px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dashboard-mobile-nav { grid-template-columns: repeat(5,minmax(0,1fr)); }
}

/* Block 1: design system and responsive application foundation */
:root {
  --app-surface: #fffdf9;
  --app-surface-raised: #ffffff;
  --app-surface-subtle: rgba(255, 253, 249, .72);
  --app-text: #281026;
  --app-text-muted: #756772;
  --app-text-soft: #8a7d87;
  --app-border-strong: rgba(40, 16, 38, .18);
  --app-focus: rgba(197, 138, 69, .58);
  --app-radius-control: 14px;
  --app-radius-card: 22px;
  --app-radius-panel: 28px;
  --app-shadow-card: 0 10px 30px rgba(40, 16, 38, .045);
  --app-shadow-popover: 0 18px 55px rgba(40, 16, 38, .09);
  --app-shadow-modal: 0 28px 90px rgba(40, 16, 38, .18);
  --app-content-max: 1580px;
  --app-safe-top: env(safe-area-inset-top, 0px);
  --app-safe-right: env(safe-area-inset-right, 0px);
  --app-safe-bottom: env(safe-area-inset-bottom, 0px);
  --app-safe-left: env(safe-area-inset-left, 0px);
}

html { min-width: 320px; }
body { font-size: 16px; overflow-wrap: anywhere; }
button, input, select, textarea { color: inherit; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .58; }

@media (hover: hover) and (pointer: fine) {
  .app-button:hover { transform: translateY(-1px); }
  .app-card-link:hover { color: var(--app-wine-dark); text-decoration: underline; text-underline-offset: 3px; }
  .app-card:hover { border-color: rgba(116, 21, 29, .18); }
}

.app-button {
  min-height: 44px;
  border-radius: var(--app-radius-control);
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
.app-button:active { transform: translateY(0); }
.app-button:focus-visible,
.app-card-link:focus-visible,
.app-filter:focus-visible,
.dashboard-icon-button:focus-visible,
.dashboard-user-button:focus-visible,
.app-close-button:focus-visible { box-shadow: 0 0 0 4px rgba(197, 138, 69, .18); }
.app-button-ghost { color: var(--app-wine); background: transparent; border-color: transparent; }
.app-button-icon { width: 44px; padding: 0; flex: 0 0 44px; }
.app-button[aria-busy="true"] { pointer-events: none; }
.app-button[aria-busy="true"]::after {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: app-spin .75s linear infinite;
}

.app-card,
.app-metric-card,
.app-table-wrap,
.app-message-layout {
  box-shadow: var(--app-shadow-card);
}
.app-card { overflow: clip; }
.app-card-head { min-width: 0; }
.app-card-head > div { min-width: 0; }
.app-card-head h3,
.app-card-head p { overflow-wrap: anywhere; }
.app-card-head p,
.app-project-card p,
.app-list-copy span,
.app-file span,
.app-message p,
.drawer-head p,
.app-form p { font-size: .8125rem; }
.app-card-link { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: .4rem .25rem; border-radius: 10px; font-size: .8125rem; text-decoration: none; }
.app-metric-head { font-size: .75rem; }
.app-metric-note { font-size: .75rem; line-height: 1.4; }
.app-list-copy strong { font-size: .8125rem; }
.app-list-copy span,
.app-list-aside { font-size: .75rem; }
.app-list-aside { max-width: 16ch; }
.app-project-client { min-width: 0; font-size: .75rem; }
.app-project-client span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-project-actions { flex-wrap: wrap; }
.app-project-actions .app-button { flex: 0 1 auto; }

.dashboard-content {
  width: min(100%, var(--app-content-max));
  margin-inline: auto;
}
.dashboard-content-head {
  width: min(100%, var(--app-content-max));
  margin-inline: auto;
  margin-bottom: 1.25rem;
}
.dashboard-main { overscroll-behavior: contain; }
.dashboard-topbar { min-width: 0; }
.dashboard-page-title { min-width: 0; }
.dashboard-page-title h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-search { flex: 0 1 420px; }
.dashboard-search input { min-height: 40px; font-size: .8125rem; }
.dashboard-icon-button,
.dashboard-user-button,
.dashboard-mobile-menu { min-height: 44px; }
.dashboard-nav a,
.dashboard-sidebar-foot a,
.dashboard-sidebar-foot button { font-size: .8125rem; }
.dashboard-nav a { position: relative; }
.dashboard-nav a[title]::after { display: none; }

.app-breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  margin-bottom: .55rem;
  color: var(--app-text-muted);
  font-size: .75rem;
  font-weight: 700;
}
.app-breadcrumbs a,
.app-breadcrumbs span { display: inline-flex; align-items: center; gap: .35rem; }
.app-breadcrumbs a { color: var(--app-wine); text-decoration: none; }
.app-breadcrumbs i { font-size: .85rem; }
.app-breadcrumbs [aria-current="page"] { color: var(--app-text-muted); font-weight: 600; }

.app-connectivity-banner {
  position: fixed;
  z-index: 500;
  top: calc(.75rem + var(--app-safe-top));
  left: 50%;
  width: min(560px, calc(100vw - 1.5rem - var(--app-safe-left) - var(--app-safe-right)));
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .7rem 1rem;
  transform: translateX(-50%);
  border: 1px solid rgba(167, 107, 9, .28);
  border-radius: 14px;
  color: #6f4705;
  background: #fff5df;
  box-shadow: var(--app-shadow-popover);
  font-size: .8125rem;
  font-weight: 800;
}
.app-connectivity-banner.is-online { color: #12694d; border-color: rgba(22, 122, 88, .24); background: #edf9f4; }

.app-filter-bar {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  margin-inline: -.15rem;
  padding: .15rem .15rem .45rem;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.app-filter { flex: 0 0 auto; min-height: 40px; scroll-snap-align: start; font-size: .75rem; }

.app-table-wrap {
  max-width: 100%;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}
.app-table-wrap:focus-visible { outline: 3px solid var(--app-focus); outline-offset: 3px; }
.app-table th { font-size: .6875rem; }
.app-table td { font-size: .8125rem; }
.app-table td strong { font-size: .8125rem; }
.app-table td small { display: block; margin-top: .2rem; font-size: .72rem; line-height: 1.4; }
.app-table select,
.app-table input {
  min-height: 40px;
  max-width: 100%;
  padding: .45rem .6rem;
  border: 1px solid var(--app-border);
  border-radius: 11px;
  background: #fff;
}
.app-table button { min-height: 40px; padding: .35rem .25rem; border-radius: 10px; font-size: .75rem; }

.app-field,
.app-form label { min-width: 0; }
.app-form label { font-size: .8125rem; }
.app-form input,
.app-form select,
.app-form textarea,
.auth-input {
  min-height: 48px;
  border-color: var(--app-border-strong);
  font-size: .875rem;
}
.app-form input:focus,
.app-form select:focus,
.app-form textarea:focus,
.app-chat-form textarea:focus {
  border-color: rgba(116, 21, 29, .62);
  box-shadow: 0 0 0 4px rgba(116, 21, 29, .08);
}
.app-form input:invalid:not(:placeholder-shown),
.app-form textarea:invalid:not(:placeholder-shown) { border-color: rgba(180, 59, 66, .6); }
.app-form-actions { flex-wrap: wrap; }
.app-form-actions .app-button { min-width: 120px; }

.app-status { min-height: 28px; padding: .36rem .6rem; font-size: .7rem; }
.app-empty { min-width: 0; }
.app-empty h3 { font-size: 1.05rem; }
.app-empty p { font-size: .8125rem; }

.app-skeleton {
  position: relative;
  overflow: hidden;
  min-height: 14px;
  border-radius: 999px;
  background: rgba(40, 16, 38, .08);
}
.app-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.78), transparent);
  animation: app-skeleton 1.25s ease-in-out infinite;
}
.app-skeleton-card { min-height: 160px; border-radius: var(--app-radius-card); }
@keyframes app-skeleton { to { transform: translateX(100%); } }

.app-tabs {
  display: flex;
  gap: .35rem;
  overflow-x: auto;
  padding: .25rem;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
}
.app-tab {
  flex: 0 0 auto;
  min-height: 40px;
  padding: .55rem .8rem;
  border: 0;
  border-radius: 12px;
  color: var(--app-muted);
  background: transparent;
  font-size: .75rem;
  font-weight: 800;
  cursor: pointer;
}
.app-tab[aria-selected="true"] { color: #fff; background: var(--app-wine); }

.app-pagination { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: 1rem; }
.app-pagination-controls { display: flex; flex-wrap: wrap; gap: .35rem; }
.app-pagination button { min-width: 40px; min-height: 40px; border: 1px solid var(--app-border); border-radius: 11px; background: #fff; cursor: pointer; }
.app-pagination button[aria-current="page"] { color: #fff; border-color: var(--app-wine); background: var(--app-wine); }

.app-timeline { position: relative; display: grid; gap: .9rem; margin: 0; padding: 0; list-style: none; }
.app-timeline::before { content: ""; position: absolute; top: 12px; bottom: 12px; left: 17px; width: 1px; background: var(--app-border); }
.app-timeline-item { position: relative; display: grid; grid-template-columns: 36px minmax(0,1fr); gap: .75rem; }
.app-timeline-marker { z-index: 1; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; color: var(--app-wine); background: #fff; border: 1px solid var(--app-border); }

.app-chart { min-width: 0; overflow: hidden; }
.app-chart-bar { min-width: 12px; }

.app-dialog { color: var(--app-text); }
.app-dialog[open] { animation: app-dialog-in .2s ease-out both; }
@keyframes app-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }
.app-drawer-panel { border-left: 1px solid var(--app-border); }
.app-close-button { position: relative; z-index: 4; flex: 0 0 42px; }
.dashboard-popover { max-height: min(640px, calc(100dvh - 90px)); overflow-y: auto; }

.app-dialog-inline {
  position: fixed;
  inset: 0;
  z-index: 280;
  display: grid;
  place-items: start center;
  padding: clamp(1rem, 3vw, 2rem);
  overflow-y: auto;
  background: rgba(22, 8, 19, .58);
  backdrop-filter: blur(10px);
  animation: app-dialog-backdrop-in .18s ease-out both;
}
.app-dialog-inline > :not(.app-close-button) {
  width: min(820px, calc(100vw - 2rem));
  max-height: calc(100dvh - clamp(2rem, 6vw, 4rem));
  overflow: auto;
  margin: auto 0;
  padding: clamp(1rem, 2.4vw, 1.45rem);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px;
  background: var(--app-paper);
  box-shadow: 0 24px 80px rgba(20, 8, 18, .34);
  animation: app-dialog-inline-in .22s cubic-bezier(.2,.75,.2,1) both;
}
.app-dialog-inline > .app-close-button {
  position: fixed;
  top: clamp(1.15rem, 3vw, 2rem);
  right: clamp(1rem, 4vw, 2rem);
  z-index: 2;
  box-shadow: 0 12px 32px rgba(20,8,18,.2);
}
.app-dialog-inline .app-card {
  box-shadow: none;
}
@keyframes app-dialog-backdrop-in { from { opacity: 0; } }
@keyframes app-dialog-inline-in { from { opacity: 0; transform: translateY(14px) scale(.985); } }

.app-message-layout { max-height: calc(100dvh - 190px); }
.app-conversation-list { min-width: 0; overflow-y: auto; }
.app-conversation { min-height: 56px; }
.app-conversation strong { font-size: .8125rem; }
.app-conversation small { font-size: .72rem; }
.app-chat-head strong { font-size: .875rem; }
.app-message p { font-size: .8125rem; }
.app-message time { font-size: .6875rem; }

.app-toast { min-height: 44px; display: flex; align-items: center; font-size: .8125rem; }
.app-toast-success { background: var(--app-success); }
.app-toast-warning { background: var(--app-warning); }
.app-toast-danger { background: var(--app-danger); }

.dashboard-mobile-fab { display: none; }

@media (max-width: 1120px) {
  .dashboard-content,
  .dashboard-content-head { max-width: 100%; }
  .app-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-message-layout { grid-template-columns: 220px minmax(0,1fr); }
}

@media (max-width: 900px) {
  .dashboard-workspace { width: 100vw; }
  .dashboard-sidebar { width: min(320px, calc(100vw - 3rem)); max-width: 90vw; }
  .dashboard-main { padding-inline: clamp(.85rem, 3vw, 1.25rem); }
  .dashboard-content-head { align-items: flex-start; }
  .dashboard-content-actions { margin-left: auto; }
  .dashboard-topbar { padding-left: max(1rem, var(--app-safe-left)); padding-right: max(1rem, var(--app-safe-right)); }
  .dashboard-mobile-nav {
    left: max(.65rem, var(--app-safe-left));
    right: max(.65rem, var(--app-safe-right));
    width: auto;
    max-width: 620px;
    margin-inline: auto;
  }
  .dashboard-mobile-fab {
    position: fixed;
    z-index: 90;
    right: max(1rem, calc(var(--app-safe-right) + .65rem));
    bottom: calc(5.65rem + var(--app-safe-bottom));
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .7rem 1rem;
    border: 0;
    border-radius: 16px;
    color: #fff;
    background: var(--app-wine);
    box-shadow: 0 16px 38px rgba(79, 14, 22, .3);
    font-size: .8125rem;
    font-weight: 900;
    cursor: pointer;
  }
  .dashboard-mobile-fab[hidden] { display: none !important; }
  .dashboard-mobile-fab i { font-size: 1.1rem; }
  .app-grid-2 { grid-template-columns: 1fr; }
  .app-message-layout { max-height: none; }
}

@media (max-width: 720px) {
  .dashboard-content-head { flex-direction: column; gap: .85rem; }
  .dashboard-content-actions { width: 100%; margin-left: 0; }
  .dashboard-content-actions .app-button { flex: 1 1 160px; }
  .app-breadcrumbs { margin-bottom: .45rem; }

  .app-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .app-table { min-width: 0; border-collapse: separate; border-spacing: 0 10px; }
  .app-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
  }
  .app-table,
  .app-table tbody,
  .app-table tr,
  .app-table td { display: block; width: 100%; }
  .app-table tbody { display: grid; gap: .8rem; }
  .app-table tr {
    overflow: hidden;
    border: 1px solid var(--app-border);
    border-radius: 18px;
    background: var(--app-paper);
    box-shadow: var(--app-shadow-card);
  }
  .app-table td {
    min-height: 44px;
    display: grid;
    grid-template-columns: minmax(96px, 36%) minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    padding: .7rem .85rem;
    border-top: 1px solid rgba(40,16,38,.065);
    text-align: right;
  }
  .app-table td:first-child { border-top: 0; text-align: left; background: rgba(40,16,38,.025); }
  .app-table td::before {
    content: attr(data-label);
    color: var(--app-muted);
    font-size: .6875rem;
    font-weight: 900;
    letter-spacing: .045em;
    text-align: left;
    text-transform: uppercase;
  }
  .app-table td:first-child::before { align-self: start; padding-top: .1rem; }
  .app-table td > * { min-width: 0; justify-self: end; }
  .app-table td:first-child > * { justify-self: start; }
  .app-table td .app-status { margin-left: auto; }
  .app-table td select { width: min(100%, 190px); }
  .app-table td button { justify-self: end; }

  .app-grid-3,
  .app-file-grid { grid-template-columns: 1fr; }
  .app-card-head { gap: .65rem; }
  .app-list-item { grid-template-columns: 40px minmax(0,1fr); }
  .app-list-item > :last-child:not(.app-list-copy) { grid-column: 2; justify-self: start; text-align: left; }
  .app-list-aside { max-width: none; }
  .drawer-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }

  .app-drawer-panel {
    top: auto;
    bottom: 0;
    width: 100%;
    height: min(94dvh, 980px);
    max-width: none;
    padding: 1rem 1rem calc(1.5rem + var(--app-safe-bottom));
    transform: translateY(102%);
    border: 1px solid var(--app-border);
    border-bottom: 0;
    border-radius: 26px 26px 0 0;
    box-shadow: 0 -24px 70px rgba(40,16,38,.2);
  }
  .app-drawer.is-open .app-drawer-panel { transform: translateY(0); }
  .app-drawer-panel::before {
    content: "";
    display: block;
    width: 42px;
    height: 4px;
    margin: 0 auto .5rem;
    border-radius: 999px;
    background: rgba(40,16,38,.18);
  }

  .app-dialog {
    width: 100%;
    max-width: none;
    max-height: 94dvh;
    margin: auto 0 0;
    padding: 1rem 1rem calc(1rem + var(--app-safe-bottom));
    border-radius: 26px 26px 0 0;
  }
  .app-dialog[open] { animation-name: app-sheet-in; }
  @keyframes app-sheet-in { from { opacity: 0; transform: translateY(40px); } }
  .app-form-actions {
    position: sticky;
    bottom: calc(-1rem - var(--app-safe-bottom));
    z-index: 3;
    margin: .5rem -1rem calc(-1rem - var(--app-safe-bottom));
    padding: .8rem 1rem calc(.8rem + var(--app-safe-bottom));
    border-top: 1px solid var(--app-border);
    background: rgba(255,253,249,.96);
    backdrop-filter: blur(16px);
  }
  .app-form-actions .app-button { flex: 1 1 120px; }

  .dashboard-popover {
    top: calc(64px + var(--app-safe-top));
    right: max(.5rem, var(--app-safe-right));
    left: max(.5rem, var(--app-safe-left));
    width: auto;
    max-height: calc(100dvh - 78px - var(--app-safe-top) - var(--app-safe-bottom));
  }
}

@media (max-width: 640px) {
  .dashboard-main { padding-top: .85rem; }
  .dashboard-page-title h1 { font-size: 1.25rem; }
  .dashboard-top-actions { gap: .3rem; }
  .dashboard-user-button { width: 44px; padding: .3rem; }
  .dashboard-user-button .dashboard-avatar { width: 36px; height: 36px; }
  .dashboard-content-head h2 { font-size: clamp(1.7rem, 8vw, 2.2rem); }
  .dashboard-content-head p { font-size: .8125rem; }
  .app-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .app-metric-card { min-height: 142px; }
  .app-metric-value { font-size: clamp(1.65rem, 9vw, 2.15rem); }
  .app-project-actions .app-button { flex: 1 1 100%; }
  .app-message-layout { min-height: calc(100dvh - 190px - var(--app-safe-bottom)); border-radius: 18px; }
  .app-conversation-list { gap: .25rem; padding: .55rem; scroll-snap-type: x proximity; }
  .app-conversation { min-width: min(76vw, 250px); scroll-snap-align: start; }
  .app-chat-messages { min-height: 300px; max-height: calc(100dvh - 390px); }
  .app-chat-form { padding-bottom: calc(.75rem + var(--app-safe-bottom)); }
  .app-chart { height: 170px; gap: .35rem; }
  .app-file { min-height: 130px; }
  .dashboard-mobile-fab span { display: none; }
  .dashboard-mobile-fab { width: 50px; height: 50px; padding: 0; border-radius: 16px; }
  .app-toast-region { bottom: calc(6rem + var(--app-safe-bottom)); }
}

@media (max-width: 430px) {
  .dashboard-topbar { gap: .4rem; padding-inline: .6rem; }
  .dashboard-mobile-menu,
  .dashboard-icon-button,
  .dashboard-user-button { width: 42px; height: 42px; }
  .dashboard-page-title h1 { max-width: min(38vw, 150px); }
  .app-grid-4 { gap: .65rem; }
  .app-metric-card { min-height: 132px; padding: .8rem; }
  .app-metric-head { align-items: flex-start; }
  .app-metric-icon { width: 32px; height: 32px; }
  .app-card { padding: .9rem; }
  .app-table td { grid-template-columns: minmax(88px, 34%) minmax(0,1fr); padding-inline: .75rem; }
  .drawer-stat-grid { grid-template-columns: 1fr; }
  .dashboard-mobile-nav { gap: .15rem; padding-inline: .3rem; }
  .dashboard-mobile-nav a { padding-inline: .1rem; }
}

@media (max-width: 360px) {
  .app-grid-4 { grid-template-columns: 1fr; }
  .app-metric-card { min-height: 120px; }
  .dashboard-page-title h1 { max-width: 32vw; }
  .dashboard-mobile-nav a span { font-size: .48rem; }
  .app-table td { grid-template-columns: 1fr; gap: .28rem; text-align: left; }
  .app-table td > *,
  .app-table td:first-child > *,
  .app-table td button,
  .app-table td .app-status { justify-self: start; margin-left: 0; }
}

@media (orientation: portrait) and (max-width: 900px) {
  .dashboard-sidebar { height: 100dvh; }
  .dashboard-main { overscroll-behavior-y: contain; }
}

@media (prefers-contrast: more) {
  :root { --app-border: rgba(40, 16, 38, .28); --app-border-strong: rgba(40, 16, 38, .42); }
  .app-card, .app-metric-card, .app-table-wrap, .app-dialog, .app-drawer-panel { border-width: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .app-skeleton::after { animation: none; }
}

@media (max-width: 900px) {
  body.has-mobile-primary-action .dashboard-content-actions { display: none; }
}

/* Authentication responsive refinements shared by the portal */
.demo-account > span:nth-child(2) { min-width: 0; }
.demo-account small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auth-input input { font-size: .875rem; }

@media (max-width: 420px) {
  .auth-form-panel { padding-left: max(1rem, var(--app-safe-left)); padding-right: max(1rem, var(--app-safe-right)); padding-bottom: calc(2rem + var(--app-safe-bottom)); }
  .auth-form-options { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .demo-access-head { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .demo-account { grid-template-columns: 42px minmax(0,1fr) 20px; gap: .65rem; }
  .auth-form-head h2 { font-size: clamp(2rem, 12vw, 2.75rem); }
}

/* --------------------------------------------------------------------------
   Block 2 · Shared dashboard shell and navigation
   -------------------------------------------------------------------------- */
.dashboard-search kbd,
.dashboard-command kbd {
  min-width: 24px;
  padding: .18rem .35rem;
  border: 1px solid var(--app-border);
  border-bottom-width: 2px;
  border-radius: 6px;
  color: var(--app-muted);
  background: var(--app-surface-soft);
  font: 700 .58rem/1 "Plus Jakarta Sans", sans-serif;
  text-align: center;
  white-space: nowrap;
}
.dashboard-search:focus-within { border-color: rgba(79,14,22,.35); box-shadow: 0 0 0 3px rgba(79,14,22,.07); }

.dashboard-popover-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; padding: .25rem .25rem .75rem; border-bottom: 1px solid var(--app-border); }
.dashboard-popover-head > div { min-width: 0; display: grid; gap: .12rem; }
.dashboard-popover-head span { color: var(--app-muted); font-size: .59rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-popover-head strong { font-size: .82rem; }
.dashboard-popover-head button { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 10px; color: var(--app-muted); background: transparent; cursor: pointer; }
.dashboard-popover-head button:hover { color: var(--app-wine); background: var(--app-surface-soft); }

.dashboard-quick-create { width: min(410px, calc(100vw - 2rem)); }
.dashboard-quick-grid { display: grid; gap: .35rem; padding-top: .55rem; }
.dashboard-quick-grid > button { width: 100%; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .65rem; border: 0; border-radius: 12px; color: var(--app-text); background: transparent; text-align: left; cursor: pointer; }
.dashboard-quick-grid > button:hover,
.dashboard-quick-grid > button:focus-visible { background: var(--app-surface-soft); }
.dashboard-quick-grid > button > i:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--app-wine); background: rgba(79,14,22,.08); font-size: 1rem; }
.dashboard-quick-grid > button > i:last-child { color: var(--app-muted); }
.dashboard-quick-grid span { min-width: 0; display: grid; gap: .15rem; }
.dashboard-quick-grid strong,
.dashboard-quick-grid small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-quick-grid strong { font-size: .73rem; }
.dashboard-quick-grid small { color: var(--app-muted); font-size: .61rem; }

.dashboard-notifications { width: min(420px, calc(100vw - 2rem)); padding-bottom: .45rem; }
.dashboard-notification-tools { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .55rem .15rem; }
.dashboard-notification-tools > div { display: flex; gap: .25rem; }
.dashboard-notification-tools button { min-height: 32px; padding: 0 .55rem; border: 0; border-radius: 9px; color: var(--app-muted); background: transparent; font-size: .61rem; font-weight: 800; cursor: pointer; }
.dashboard-notification-tools button:hover,
.dashboard-notification-tools button.is-active { color: var(--app-wine); background: rgba(79,14,22,.08); }
.dashboard-notification-list { max-height: min(520px, calc(100dvh - 210px)); overflow: auto; display: grid; gap: .25rem; }
.dashboard-notification-item { width: 100%; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: flex-start; gap: .7rem; padding: .65rem; border: 0; border-radius: 12px; color: var(--app-text); background: transparent; text-align: left; cursor: pointer; }
.dashboard-notification-item:hover,
.dashboard-notification-item:focus-visible { background: var(--app-surface-soft); }
.dashboard-notification-item.is-unread { background: rgba(79,14,22,.045); }
.dashboard-notification-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--app-wine); background: rgba(79,14,22,.08); }
.dashboard-notification-item > span:nth-child(2) { min-width: 0; display: grid; gap: .16rem; }
.dashboard-notification-item strong { font-size: .7rem; }
.dashboard-notification-item small { color: var(--app-muted); font-size: .61rem; line-height: 1.4; }
.dashboard-notification-item time { color: var(--app-muted); font-size: .55rem; }
.dashboard-unread-dot { align-self: center; color: var(--app-wine); font-size: .42rem; }

.dashboard-user-menu { width: min(330px, calc(100vw - 2rem)); }
.dashboard-user-summary { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: .7rem; padding: .3rem .25rem .75rem; border-bottom: 1px solid var(--app-border); }
.dashboard-user-summary .dashboard-avatar { width: 44px; height: 44px; }
.dashboard-user-summary > div { min-width: 0; display: grid; gap: .15rem; }
.dashboard-user-summary strong,
.dashboard-user-summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-user-summary strong { font-size: .75rem; }
.dashboard-user-summary span { color: var(--app-muted); font-size: .61rem; }
.dashboard-user-context { display: grid; gap: .08rem; padding: .65rem .25rem; }
.dashboard-user-context span { font-size: .66rem; font-weight: 800; }
.dashboard-user-context small { color: var(--app-muted); font-size: .58rem; }
.dashboard-user-menu nav { display: grid; gap: .18rem; }
.dashboard-user-menu nav a,
.dashboard-user-menu nav button,
.dashboard-user-logout { width: 100%; min-height: 40px; display: flex; align-items: center; gap: .65rem; padding: .55rem .65rem; border: 0; border-radius: 10px; color: var(--app-text); background: transparent; text-decoration: none; text-align: left; font: 700 .68rem "Plus Jakarta Sans", sans-serif; cursor: pointer; }
.dashboard-user-menu nav a:hover,
.dashboard-user-menu nav button:hover,
.dashboard-user-logout:hover { background: var(--app-surface-soft); }
.dashboard-user-menu nav i,
.dashboard-user-logout i { color: var(--app-wine); font-size: .92rem; }
.dashboard-session-note { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: .55rem; margin-top: .55rem; padding: .6rem; border-radius: 11px; color: var(--app-muted); background: var(--app-surface-soft); }
.dashboard-session-note > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--app-wine); background: #fff; }
.dashboard-session-note > span { min-width: 0; display: grid; gap: .1rem; }
.dashboard-session-note strong { color: var(--app-text); font-size: .61rem; }
.dashboard-session-note small { font-size: .55rem; line-height: 1.35; }
.dashboard-user-logout { margin-top: .45rem; color: #9f1f2d; }

.dashboard-command { position: fixed; z-index: 180; inset: 0; display: grid; align-items: start; justify-items: center; padding: max(7vh, 4rem) 1rem 1rem; }
.dashboard-command-backdrop { position: absolute; inset: 0; border: 0; background: rgba(26,10,24,.56); backdrop-filter: blur(7px); cursor: default; }
.dashboard-command-card { position: relative; width: min(720px, 100%); max-height: min(760px, calc(100dvh - 8rem)); overflow: hidden; border: 1px solid rgba(255,255,255,.3); border-radius: 22px; background: #fff; box-shadow: 0 34px 90px rgba(20,8,20,.32); }
.dashboard-command-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .7rem; min-height: 64px; padding: 0 .85rem 0 1rem; border-bottom: 1px solid var(--app-border); }
.dashboard-command-head > i { color: var(--app-wine); font-size: 1.15rem; }
.dashboard-command-head input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--app-text); background: transparent; font: 600 .86rem "Plus Jakarta Sans", sans-serif; }
.dashboard-command-head button { width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 11px; color: var(--app-muted); background: var(--app-surface-soft); cursor: pointer; }
.dashboard-command-meta { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem 1rem; color: var(--app-muted); background: var(--app-surface-soft); font-size: .58rem; }
.dashboard-command-meta > span:last-child { display: flex; align-items: center; gap: .25rem; }
.dashboard-command-results { max-height: min(620px, calc(100dvh - 210px)); overflow: auto; padding: .55rem; }
.dashboard-command-group + .dashboard-command-group { margin-top: .55rem; }
.dashboard-command-group h3 { margin: .25rem .55rem .35rem; color: var(--app-muted); font-size: .58rem; letter-spacing: .07em; text-transform: uppercase; }
.dashboard-command-result { width: 100%; display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .58rem .65rem; border: 0; border-radius: 12px; color: var(--app-text); background: transparent; text-align: left; cursor: pointer; }
.dashboard-command-result:hover,
.dashboard-command-result.is-active { background: rgba(79,14,22,.07); }
.dashboard-command-result > i { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: var(--app-wine); background: #fff; box-shadow: inset 0 0 0 1px var(--app-border); font-size: 1rem; }
.dashboard-command-result span { min-width: 0; display: grid; gap: .12rem; }
.dashboard-command-result strong,
.dashboard-command-result small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-command-result strong { font-size: .72rem; }
.dashboard-command-result small { color: var(--app-muted); font-size: .6rem; }
body.has-command-open { overflow: hidden; }

.dashboard-title-row { display: flex; align-items: flex-end; gap: 1rem; min-width: 0; }
.dashboard-title-row > div:first-child { min-width: 0; }
.app-context-trail { max-width: 320px; display: inline-flex; align-items: center; gap: .35rem; margin-bottom: .12rem; padding: .35rem .45rem .35rem .55rem; border: 1px solid var(--app-border); border-radius: 999px; color: var(--app-wine); background: #fff; font-size: .61rem; font-weight: 800; }
.app-context-trail > i { flex: 0 0 auto; }
.app-context-trail > button { width: 25px; height: 25px; display: grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 999px; color: inherit; background: rgba(79,14,22,.07); cursor: pointer; }

@media (max-width: 1280px) {
  .dashboard-search { flex-basis: 320px; }
}

@media (max-width: 1080px) {
}

@media (max-width: 900px) {
  .dashboard-popover { top: max(68px, calc(env(safe-area-inset-top) + 58px)); right: max(.6rem, var(--app-safe-right)); left: auto; }
  .dashboard-title-row { align-items: flex-start; flex-direction: column; gap: .55rem; }
  .app-context-trail { max-width: 100%; }
}

@media (max-width: 720px) {
  .dashboard-command { align-items: stretch; padding: 0; }
  .dashboard-command-card { width: 100%; max-height: 100dvh; min-height: 100dvh; border: 0; border-radius: 0; padding-top: env(safe-area-inset-top); }
  .dashboard-command-results { max-height: calc(100dvh - 150px - env(safe-area-inset-top)); padding-bottom: calc(1rem + env(safe-area-inset-bottom)); }
  .dashboard-command-meta > span:last-child { display: none; }
  .dashboard-command-head { min-height: 62px; }
  .dashboard-quick-create,
  .dashboard-notifications,
  .dashboard-user-menu { width: calc(100vw - 1rem); right: .5rem; }
  .dashboard-notification-list { max-height: calc(100dvh - 230px); }
}

@media (max-width: 420px) {
  .dashboard-topbar .dashboard-page-title { max-width: 42vw; }
  .dashboard-top-actions { gap: .2rem; }
  .dashboard-top-actions .dashboard-icon-button { width: 38px; height: 38px; }
  .dashboard-command-result { grid-template-columns: 36px minmax(0,1fr); }
  .dashboard-command-result > kbd { display: none; }
  .dashboard-command-result > i { width: 36px; height: 36px; }
  .dashboard-notification-tools { align-items: flex-start; flex-direction: column; }
}

/* --------------------------------------------------------------------------
   Block 3 · Complete authentication and session security
   -------------------------------------------------------------------------- */
.auth-link-button { text-decoration: none; }
.auth-login-status { min-height: 1.1rem; margin: -.35rem 0 .8rem; color: var(--app-muted); font-size: .72rem; font-weight: 700; }
.auth-flow-layout { min-height: 100dvh; display: grid; grid-template-columns: minmax(340px,.82fr) minmax(460px,1.18fr); background: var(--app-paper); }
.auth-flow-brand { position: relative; overflow: hidden; min-height: 100dvh; display: flex; flex-direction: column; padding: clamp(2rem,5vw,4.5rem); color: #fff; background: radial-gradient(circle at 85% 15%,rgba(240,201,134,.2),transparent 28%),linear-gradient(148deg,#281026,#4f0e16 62%,#74151d); }
.auth-flow-brand::before { content:""; position:absolute; width:560px; height:560px; right:-300px; bottom:-250px; border:1px solid rgba(255,255,255,.12); border-radius:50%; box-shadow:0 0 0 80px rgba(255,255,255,.035),0 0 0 160px rgba(255,255,255,.025); }
.auth-flow-brand-copy { position:relative; z-index:1; margin:auto 0 2rem; max-width:560px; }
.auth-flow-brand-copy h1 { max-width:10ch; margin:.45rem 0 1rem; font-family:"Fraunces",Georgia,serif; font-size:clamp(2.8rem,5vw,5.2rem); line-height:.96; letter-spacing:-.045em; }
.auth-flow-brand-copy p { margin:0; max-width:54ch; color:rgba(255,255,255,.72); line-height:1.72; }
.auth-trust-list { position:relative; z-index:1; display:grid; gap:.65rem; margin:0; padding:0; list-style:none; color:rgba(255,255,255,.68); font-size:.75rem; }
.auth-trust-list li { display:flex; align-items:center; gap:.6rem; }
.auth-trust-list i { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; color:var(--app-gold-soft); background:rgba(255,255,255,.075); }
.auth-flow-content { min-width:0; display:grid; place-items:center; padding:clamp(1.25rem,5vw,5rem); }
.auth-flow-card { width:min(100%,520px); padding:clamp(1.2rem,3vw,2.4rem); border:1px solid var(--app-border); border-radius:28px; background:#fff; box-shadow:0 26px 80px rgba(40,16,38,.1); }
.auth-flow-mobile-logo { display:none; width:64px; margin-bottom:1.5rem; }
.auth-flow-mobile-logo img { width:100%; }
.auth-flow-head { margin-bottom:1.4rem; }
.auth-flow-head > span { color:var(--app-wine); font-size:.7rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.auth-flow-head h2 { margin:.45rem 0 .55rem; font-family:"Fraunces",Georgia,serif; font-size:clamp(2rem,4vw,3rem); line-height:1; letter-spacing:-.025em; }
.auth-flow-head p { margin:0; color:var(--app-muted); line-height:1.65; }
.auth-flow-head-centered { text-align:center; }
.auth-state-icon { width:72px; height:72px; display:grid; place-items:center; margin:0 auto 1.1rem; border-radius:22px; color:var(--app-wine); background:rgba(79,14,22,.08); font-size:2rem; }
.auth-state-warning { color:#9a6412; background:rgba(202,139,35,.12); }
.auth-state-danger { color:#a22e39; background:rgba(162,46,57,.1); }
.auth-demo-note { display:grid; grid-template-columns:28px minmax(0,1fr); gap:.55rem; margin-top:1rem; padding:.75rem; border:1px dashed rgba(79,14,22,.2); border-radius:13px; color:var(--app-muted); background:rgba(79,14,22,.035); font-size:.68rem; line-height:1.5; }
.auth-demo-note i { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; color:var(--app-wine); background:#fff; }
.auth-success-panel { display:grid; justify-items:center; gap:.75rem; padding:1.2rem .5rem; text-align:center; }
.auth-success-panel > i { width:66px; height:66px; display:grid; place-items:center; border-radius:20px; color:#1d7654; background:rgba(29,118,84,.1); font-size:1.8rem; }
.auth-success-panel h2,.auth-success-panel h3 { margin:0; font-family:"Fraunces",Georgia,serif; }
.auth-success-panel p { margin:0 0 .35rem; max-width:42ch; color:var(--app-muted); line-height:1.6; }
.auth-success-panel-large { min-height:360px; align-content:center; }
.auth-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.auth-consent { display:grid !important; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:.55rem; color:var(--app-muted); font-size:.74rem; line-height:1.55; }
.auth-consent input { width:18px; height:18px; margin-top:.12rem; accent-color:var(--app-wine); }
.auth-consent a { color:var(--app-wine); font-weight:800; }
.password-strength { display:grid; gap:.4rem; margin-top:-.45rem; }
.password-strength > span { height:5px; overflow:hidden; border-radius:99px; background:var(--app-surface-soft); }
.password-strength i { display:block; width:0; height:100%; border-radius:inherit; background:#a62e39; transition:width .2s,background .2s; }
.password-strength[data-score="1"] i { width:20%; }
.password-strength[data-score="2"] i { width:40%; background:#b87522; }
.password-strength[data-score="3"] i { width:60%; background:#c29a2d; }
.password-strength[data-score="4"] i { width:80%; background:#56815b; }
.password-strength[data-score="5"] i { width:100%; background:#237552; }
.password-strength small { color:var(--app-muted); font-size:.64rem; line-height:1.45; }
.auth-invitation-card { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:.8rem; margin-bottom:1.1rem; padding:.8rem; border:1px solid var(--app-border); border-radius:16px; background:var(--app-surface-soft); }
.auth-invitation-logo { width:48px; height:48px; display:grid; place-items:center; overflow:hidden; border-radius:14px; color:var(--app-wine); background:#fff; }
.auth-invitation-logo img { width:100%; height:100%; object-fit:contain; padding:.35rem; }
.auth-invitation-card > div { min-width:0; display:grid; gap:.12rem; }
.auth-invitation-card small,.auth-invitation-card span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--app-muted); font-size:.65rem; }
.auth-invitation-card strong { font-size:.82rem; }
.otp-fieldset { margin:0; padding:0; border:0; }
.otp-fieldset legend { margin-bottom:.55rem; font-size:.75rem; font-weight:800; }
.otp-inputs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.55rem; }
.otp-inputs input { width:100%; aspect-ratio:1; min-height:52px; border:1px solid var(--app-border); border-radius:14px; outline:0; text-align:center; font:800 1.15rem "Plus Jakarta Sans",sans-serif; }
.otp-inputs input:focus { border-color:rgba(79,14,22,.55); box-shadow:0 0 0 4px rgba(79,14,22,.08); }
.auth-trusted-device { margin-top:.2rem; }
.auth-recovery-toggle { justify-self:center; margin-top:.2rem; }
.auth-recovery-form { margin-top:.8rem; padding-top:1rem; border-top:1px solid var(--app-border); }
.auth-qr-demo { min-height:150px; display:grid; place-items:center; align-content:center; gap:.55rem; margin-bottom:1rem; border:1px dashed var(--app-border); border-radius:18px; color:var(--app-muted); background:var(--app-surface-soft); font-size:.7rem; }
.auth-qr-demo i { color:var(--app-wine); font-size:4rem; }
.auth-organization-list { display:grid; gap:.65rem; }
.auth-organization-option { position:relative; display:grid !important; grid-template-columns:44px minmax(0,1fr) 28px; align-items:center; gap:.7rem; padding:.75rem; border:1px solid var(--app-border); border-radius:15px; cursor:pointer; }
.auth-organization-option:has(input:checked) { border-color:rgba(79,14,22,.46); background:rgba(79,14,22,.04); box-shadow:0 0 0 3px rgba(79,14,22,.05); }
.auth-organization-option input { position:absolute; opacity:0; pointer-events:none; }
.auth-organization-visual { width:44px; height:44px; display:grid; place-items:center; overflow:hidden; border-radius:13px; color:var(--app-wine); background:#fff; box-shadow:inset 0 0 0 1px var(--app-border); }
.auth-organization-visual img { width:100%; height:100%; object-fit:contain; padding:.32rem; }
.auth-organization-option > span:nth-of-type(2) { min-width:0; display:grid; gap:.15rem; }
.auth-organization-option strong,.auth-organization-option small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.auth-organization-option strong { font-size:.78rem; }
.auth-organization-option small { color:var(--app-muted); font-size:.64rem; }
.auth-organization-option > i { width:26px; height:26px; display:grid; place-items:center; border-radius:99px; color:transparent; background:var(--app-surface-soft); }
.auth-organization-option:has(input:checked) > i { color:#fff; background:var(--app-wine); }
.auth-legal-summary { display:grid; grid-template-columns:44px minmax(0,1fr); gap:.75rem; margin-bottom:1rem; padding:.9rem; border:1px solid var(--app-border); border-radius:16px; background:var(--app-surface-soft); }
.auth-legal-summary > i { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; color:var(--app-wine); background:#fff; font-size:1.2rem; }
.auth-legal-summary strong { font-size:.78rem; }
.auth-legal-summary p { margin:.25rem 0 .4rem; color:var(--app-muted); font-size:.68rem; line-height:1.5; }
.auth-legal-summary a { color:var(--app-wine); font-size:.67rem; font-weight:800; text-decoration:none; }

.app-security-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1rem; }
.app-security-overview { display:grid; gap:.75rem; }
.app-security-status { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.75rem; border:1px solid var(--app-border); border-radius:15px; }
.app-security-status > i { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:var(--app-wine); background:rgba(79,14,22,.08); font-size:1.1rem; }
.app-security-status > span { min-width:0; display:grid; gap:.12rem; }
.app-security-status strong { font-size:.74rem; }
.app-security-status small { color:var(--app-muted); font-size:.61rem; line-height:1.4; }
.app-session-list { display:grid; gap:.55rem; }
.app-session-item { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.7rem; border:1px solid var(--app-border); border-radius:14px; }
.app-session-item > i { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:var(--app-wine); background:var(--app-surface-soft); }
.app-session-copy { min-width:0; display:grid; gap:.12rem; }
.app-session-copy strong,.app-session-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-session-copy strong { font-size:.7rem; }
.app-session-copy span { color:var(--app-muted); font-size:.59rem; }
.app-session-actions { display:flex; align-items:center; gap:.35rem; }
.app-session-current { padding:.25rem .45rem; border-radius:99px; color:#1f7554; background:rgba(31,117,84,.09); font-size:.55rem; font-weight:900; }
.app-session-revoke { width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:10px; color:#9f1f2d; background:rgba(159,31,45,.07); cursor:pointer; }

@media (max-width:900px) {
  .auth-flow-layout { grid-template-columns:1fr; }
  .auth-flow-brand { min-height:auto; padding:1.25rem max(1rem,var(--app-safe-right)) 1.25rem max(1rem,var(--app-safe-left)); }
  .auth-flow-brand-copy,.auth-trust-list { display:none; }
  .auth-flow-content { min-height:calc(100dvh - 96px); padding:1rem max(1rem,var(--app-safe-right)) calc(1.5rem + var(--app-safe-bottom)) max(1rem,var(--app-safe-left)); }
  .auth-flow-card { border-radius:22px; }
  .app-security-grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .auth-flow-brand { display:none; }
  .auth-flow-content { min-height:100dvh; align-items:start; padding-top:calc(1rem + env(safe-area-inset-top)); }
  .auth-flow-card { width:100%; padding:1.1rem; border:0; border-radius:0; box-shadow:none; }
  .auth-flow-mobile-logo { display:block; }
  .auth-form-grid { grid-template-columns:1fr; }
  .otp-inputs { gap:.35rem; }
  .otp-inputs input { min-height:46px; border-radius:11px; }
  .app-session-item { grid-template-columns:38px minmax(0,1fr); }
  .app-session-actions { grid-column:2; justify-content:flex-start; }
}

/* Block 4 · Roles, permissions and membership access */
:root { --app-surface-soft: #f8f1e8; }
.app-button-block { width: 100%; }
.app-readonly-note, .app-muted-dash { color: var(--app-muted); font-size: .7rem; }
.app-inline-filters { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(150px, 220px); gap: .7rem; margin-bottom: .9rem; }
.app-inline-filters label { min-height: 44px; display: flex; align-items: center; gap: .55rem; padding: 0 .8rem; border: 1px solid var(--app-border); border-radius: 13px; background: #fff; }
.app-inline-filters label i { color: var(--app-muted); }
.app-inline-filters input, .app-inline-filters select { width: 100%; min-height: 44px; border: 1px solid var(--app-border); border-radius: 13px; color: var(--app-ink); background: #fff; outline: 0; }
.app-inline-filters label input { min-height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; }
.app-inline-filters select { padding: 0 .75rem; }
.app-member-identity { min-width: 190px; display: flex; align-items: center; gap: .65rem; }
.app-member-identity .dashboard-avatar { width: 40px; height: 40px; flex: 0 0 40px; }
.app-member-identity > span:last-child { min-width: 0; display: grid; gap: .12rem; }
.app-member-identity strong, .app-member-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-member-identity small { color: var(--app-muted); font-size: .62rem; }
.app-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .25rem; }
.app-row-actions button { min-width: 36px; min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: .45rem .55rem; border: 1px solid var(--app-border); border-radius: 10px; color: var(--app-ink); background: #fff; cursor: pointer; }
.app-row-actions button span { display: none; }
.app-row-actions button:hover { border-color: rgba(116,21,29,.3); color: var(--app-wine); background: rgba(116,21,29,.035); }
.app-row-actions button.is-danger { color: var(--app-danger); }
.app-role-chip { width: fit-content; display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border: 1px solid transparent; border-radius: 99px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.app-role-violet { color: #5e3a96; background: #f0eafd; border-color: #d8c7f4; }
.app-role-burgundy { color: #74151d; background: #f7e9e9; border-color: #e9c9cc; }
.app-role-blue { color: #315fa5; background: #eaf1fb; border-color: #cbdaf1; }
.app-role-teal { color: #167a70; background: #e6f6f3; border-color: #bee8df; }
.app-role-amber { color: #946009; background: #fff4d9; border-color: #efd8a6; }
.app-role-rose { color: #a83d64; background: #fbeaf1; border-color: #efcad9; }
.app-role-slate { color: #58616e; background: #eef0f3; border-color: #d8dce2; }
.app-access-note { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: start; gap: .8rem; }
.app-access-note > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.15rem; }
.app-access-note h3 { margin: 0; font: 700 1rem "Fraunces", Georgia, serif; }
.app-access-note p { margin: .25rem 0 0; color: var(--app-muted); font-size: .72rem; line-height: 1.55; }
.app-access-layout { display: grid; grid-template-columns: minmax(250px, 310px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.app-role-sidebar { position: sticky; top: 92px; }
.app-role-list { display: grid; gap: .4rem; margin-bottom: .8rem; }
.app-role-list-item { width: 100%; display: grid; grid-template-columns: 11px minmax(0,1fr) auto; align-items: center; gap: .6rem; padding: .65rem; border: 1px solid transparent; border-radius: 13px; color: var(--app-ink); text-align: left; background: transparent; cursor: pointer; }
.app-role-list-item:hover, .app-role-list-item.is-active { border-color: rgba(116,21,29,.18); background: rgba(116,21,29,.05); }
.app-role-list-item.is-active { box-shadow: inset 3px 0 0 var(--app-wine); }
.app-role-list-item > span:nth-child(2) { min-width: 0; display: grid; gap: .12rem; }
.app-role-list-item strong, .app-role-list-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-role-list-item strong { font-size: .72rem; }
.app-role-list-item small, .app-role-list-item > span:last-child { color: var(--app-muted); font-size: .58rem; }
.app-role-dot { width: 10px; height: 10px; border-radius: 99px; background: currentColor; }
.app-role-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; margin-bottom: 1rem; }
.app-role-meta > span { display: grid; gap: .18rem; padding: .65rem; border: 1px solid var(--app-border); border-radius: 13px; background: var(--app-surface-soft); }
.app-role-meta strong { font-size: .78rem; }
.app-role-meta small { color: var(--app-muted); font-size: .56rem; }
.app-role-form { display: grid; gap: 1rem; }
.app-permission-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding-top: .3rem; }
.app-permission-toolbar > div { display: grid; gap: .15rem; }
.app-permission-toolbar strong { font-size: .78rem; }
.app-permission-toolbar span { color: var(--app-muted); font-size: .62rem; line-height: 1.45; }
.app-permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.app-permission-group { min-width: 0; margin: 0; padding: .7rem; border: 1px solid var(--app-border); border-radius: 15px; background: rgba(255,255,255,.6); }
.app-permission-group legend { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 0 .2rem .35rem; color: var(--app-wine); font-size: .66rem; font-weight: 900; text-transform: capitalize; }
.app-permission-group legend small { color: var(--app-muted); }
.app-permission-item { display: grid !important; grid-template-columns: 19px minmax(0,1fr); align-items: start; gap: .55rem; padding: .48rem .35rem; border-radius: 10px; cursor: pointer; }
.app-permission-item:hover { background: var(--app-surface-soft); }
.app-permission-item input { width: 17px; height: 17px; margin: .05rem 0 0; accent-color: var(--app-wine); }
.app-permission-item > span { min-width: 0; display: grid; gap: .12rem; }
.app-permission-item strong { overflow-wrap: anywhere; font-size: .62rem; }
.app-permission-item small { color: var(--app-muted); font-size: .56rem; line-height: 1.4; }
.app-permission-item:has(input:disabled) { cursor: default; opacity: .78; }
.app-permission-denied { display: grid; justify-items: center; gap: .75rem; text-align: center; }
.app-permission-denied h2, .app-permission-denied p { margin: 0; }
.app-permission-denied p { max-width: 44ch; color: var(--app-muted); line-height: 1.6; }
.app-permission-denied-icon, .app-confirm-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 20px; color: var(--app-danger); background: rgba(180,59,66,.1); font-size: 1.7rem; }
.app-confirm-icon-info { color: var(--app-info); background: rgba(49,95,165,.1); }
.app-permission-code { width: 100%; display: grid; gap: .3rem; padding: .7rem; border: 1px solid var(--app-border); border-radius: 13px; text-align: left; background: var(--app-surface-soft); }
.app-permission-code span { color: var(--app-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.app-permission-code code { overflow-wrap: anywhere; color: var(--app-wine); font-size: .72rem; }
.app-impersonation-banner { position: fixed; inset: 0 0 auto; z-index: 1000; min-height: 52px; display: flex; align-items: center; justify-content: center; gap: .65rem; padding: .55rem max(1rem,env(safe-area-inset-right)) .55rem max(1rem,env(safe-area-inset-left)); color: #fff; background: linear-gradient(90deg,#315fa5,#233f74); box-shadow: 0 8px 22px rgba(25,47,87,.2); }
.app-impersonation-banner > i { font-size: 1.2rem; }
.app-impersonation-banner > span { display: grid; gap: .08rem; }
.app-impersonation-banner strong { font-size: .72rem; }
.app-impersonation-banner small { color: rgba(255,255,255,.72); font-size: .56rem; }
.app-impersonation-banner button { min-height: 34px; margin-left: .4rem; padding: .45rem .65rem; border: 1px solid rgba(255,255,255,.24); border-radius: 10px; color: #fff; background: rgba(255,255,255,.1); font-weight: 800; cursor: pointer; }
.has-impersonation-banner .dashboard-shell { padding-top: 52px; }
.has-impersonation-banner .dashboard-sidebar { height: calc(100vh - 52px); }
.has-impersonation-banner .dashboard-topbar { top: 52px; }

@media (min-width: 1280px) {
  .app-row-actions button span { display: inline; }
}
@media (max-width: 1000px) {
  .app-access-layout { grid-template-columns: 1fr; }
  .app-role-sidebar { position: static; }
  .app-role-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .app-inline-filters { grid-template-columns: 1fr; }
  .app-permission-grid { grid-template-columns: 1fr; }
  .app-role-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .app-role-list { display: flex; overflow-x: auto; padding-bottom: .3rem; scroll-snap-type: x proximity; }
  .app-role-list-item { min-width: 230px; scroll-snap-align: start; }
  .app-permission-toolbar { align-items: flex-start; flex-direction: column; }
  .app-impersonation-banner { justify-content: flex-start; }
  .app-impersonation-banner > span { flex: 1; min-width: 0; }
}
@media (max-width: 560px) {
  .app-role-meta { grid-template-columns: 1fr 1fr; }
  .app-row-actions { justify-content: flex-start; flex-wrap: wrap; }
  .app-row-actions button { min-width: 40px; }
  .app-impersonation-banner { min-height: 64px; }
  .app-impersonation-banner small { display: none; }
  .has-impersonation-banner .dashboard-shell { padding-top: 64px; }
  .has-impersonation-banner .dashboard-sidebar { height: calc(100vh - 64px); }
  .has-impersonation-banner .dashboard-topbar { top: 64px; }
}


/* Block 5: client dashboard */
.client-dashboard-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-panel);
  background:
    radial-gradient(circle at 92% 8%, rgba(197,138,69,.16), transparent 34%),
    linear-gradient(135deg, rgba(40,16,38,.98), rgba(83,24,55,.95));
  color: #fff;
  box-shadow: 0 18px 50px rgba(40,16,38,.12);
}
.client-dashboard-toolbar .auth-eyebrow { color: rgba(255,255,255,.68); }
.client-dashboard-toolbar h2 { margin: .25rem 0 .35rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.75rem, 3.5vw, 2.65rem); line-height: 1; }
.client-dashboard-toolbar p { max-width: 720px; margin: 0; color: rgba(255,255,255,.72); font-size: .84rem; line-height: 1.55; }
.client-dashboard-toolbar-actions { display: flex; align-items: flex-end; gap: .65rem; flex: 0 0 auto; }
.client-dashboard-toolbar-actions label { display: grid; gap: .3rem; min-width: 170px; color: rgba(255,255,255,.72); font-size: .68rem; font-weight: 800; }
.client-dashboard-toolbar-actions select { min-height: 44px; padding: .65rem 2.2rem .65rem .75rem; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; color: #fff; background: rgba(255,255,255,.1); outline: 0; }
.client-dashboard-toolbar-actions select option { color: var(--app-ink); background: #fff; }
.client-dashboard-toolbar-actions .app-button { color: #fff; border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.08); }
.client-dashboard-kpis { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .8rem; }
.client-dashboard-kpis .app-metric-card { min-height: 142px; padding: 1rem; }
.client-dashboard-kpis .app-metric-value { font-size: clamp(1.65rem, 2.5vw, 2.2rem); }
.client-dashboard-layout { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 1rem; margin-top: 1rem; align-items: start; }
.client-dashboard-widget { grid-column: span 6; min-width: 0; }
.client-dashboard-widget-wide { grid-column: 1 / -1; }
.client-dashboard-projects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.client-dashboard-projects > :only-child { grid-column: 1 / -1; }
.client-project-overview {
  overflow: hidden;
  padding: clamp(1rem, 2.2vw, 1.45rem);
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-panel);
  background: linear-gradient(150deg,#fff,rgba(251,245,236,.68));
  box-shadow: var(--app-shadow-card);
}
.client-project-overview.is-selected { border-color: rgba(116,21,29,.34); box-shadow: 0 0 0 3px rgba(116,21,29,.06), var(--app-shadow-card); }
.client-project-overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.client-project-overview-head > div { min-width: 0; }
.client-project-code { color: var(--app-wine); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.client-project-overview h3 { margin: .3rem 0 .4rem; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.08; }
.client-project-overview p { max-width: 760px; margin: 0; color: var(--app-muted); font-size: .82rem; line-height: 1.55; }
.client-project-progress-row { display: grid; grid-template-columns: auto minmax(120px,1fr) auto; align-items: center; gap: .8rem; margin-top: 1.2rem; }
.client-project-progress-row > strong { font-family: "Fraunces", Georgia, serif; font-size: 1.4rem; }
.client-project-progress-row > span { color: var(--app-muted); font-size: .7rem; font-weight: 700; }
.client-project-overview-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.client-project-overview-meta > div { min-width: 0; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: .7rem; padding: .75rem; border: 1px solid rgba(40,16,38,.08); border-radius: 16px; background: rgba(255,255,255,.72); }
.client-project-overview-meta > div > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: var(--app-wine); background: rgba(116,21,29,.08); }
.client-project-overview-meta span small,.client-project-overview-meta span strong { display: block; }
.client-project-overview-meta span strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; }
.client-project-overview-meta span small { color: var(--app-muted); font-size: .64rem; line-height: 1.4; }
.client-manager-avatar { width: 42px; height: 42px; }
.client-manager-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.client-project-overview-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.client-attention-card { border-color: rgba(116,21,29,.15); }
.client-attention-count { display: inline-flex; align-items: center; min-height: 30px; padding: .3rem .65rem; border-radius: 999px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: .68rem; font-weight: 800; }
.client-attention-list { display: grid; gap: .65rem; }
.client-attention-item { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .8rem; border: 1px solid rgba(40,16,38,.08); border-radius: 17px; background: rgba(255,255,255,.72); }
.client-attention-item.is-overdue { border-color: rgba(178,57,57,.25); background: rgba(178,57,57,.035); }
.client-attention-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: var(--app-wine); background: rgba(116,21,29,.08); font-size: 1.05rem; }
.client-attention-title { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.client-attention-title strong { font-size: .82rem; }
.client-attention-item p { margin: .2rem 0 .35rem; color: var(--app-muted); font-size: .74rem; line-height: 1.45; }
.client-attention-item > div > span { display: flex; align-items: center; flex-wrap: wrap; gap: .32rem; color: var(--app-muted); font-size: .65rem; }
.client-attention-item > div > span i:not(:first-child) { margin-left: .35rem; }
.client-milestone-timeline { position: relative; display: grid; gap: .2rem; }
.client-milestone { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: .65rem; padding: .6rem 0; }
.client-milestone:not(:last-child)::after { content:""; position:absolute; left:18px; top:44px; bottom:-8px; width:1px; background:rgba(40,16,38,.12); }
.client-milestone-dot { position: relative; z-index: 1; width: 38px; height: 38px; display:grid; place-items:center; border:1px solid var(--app-border); border-radius:12px; color:var(--app-wine); background:#fff; }
.client-milestone.is-complete .client-milestone-dot { color:#fff; background:var(--app-wine); border-color:var(--app-wine); }
.client-milestone.is-blocked .client-milestone-dot { color:#b23939; background:#fff2f2; border-color:rgba(178,57,57,.2); }
.client-milestone > div > div { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.client-milestone strong { font-size:.78rem; }
.client-milestone p,.client-milestone small { margin:.15rem 0; color:var(--app-muted); font-size:.66rem; }
.client-milestone .app-progress { margin:.45rem 0 .35rem; }
.client-performance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.client-performance-item { padding:.75rem; border:1px solid rgba(40,16,38,.08); border-radius:16px; background:rgba(255,255,255,.72); }
.client-performance-item > div:first-child { display:flex; align-items:center; justify-content:space-between; gap:.5rem; color:var(--app-muted); font-size:.67rem; }
.client-performance-item > strong { display:block; margin:.45rem 0; font-family:"Fraunces",Georgia,serif; font-size:1.35rem; }
.client-performance-item small { color:var(--app-muted); font-size:.62rem; }
.client-latest-message { display:grid; grid-template-columns:42px minmax(0,1fr); gap:.7rem; padding:.8rem; border:1px solid rgba(40,16,38,.08); border-radius:16px; background:rgba(255,255,255,.7); }
.client-latest-message strong,.client-latest-message small { display:block; }
.client-latest-message strong { font-size:.75rem; }
.client-latest-message p { margin:.25rem 0; color:var(--app-muted); font-size:.74rem; line-height:1.5; }
.client-latest-message small { color:var(--app-text-soft); font-size:.62rem; }
.client-contact-shortcut { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:.65rem; margin-top:.7rem; padding:.7rem; border-radius:15px; background:rgba(116,21,29,.05); }
.client-contact-shortcut > i { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; color:var(--app-wine); background:#fff; }
.client-contact-shortcut strong,.client-contact-shortcut small { display:block; }
.client-contact-shortcut strong { font-size:.72rem; }
.client-contact-shortcut small { color:var(--app-muted); font-size:.62rem; }
.client-next-meeting { display:grid; grid-template-columns:64px minmax(0,1fr); gap:.85rem; }
.client-meeting-date { width:64px; height:70px; display:grid; place-items:center; align-content:center; border-radius:18px; color:#fff; background:var(--app-wine); }
.client-meeting-date strong,.client-meeting-date span { display:block; text-transform:uppercase; }
.client-meeting-date strong { font-family:"Fraunces",Georgia,serif; font-size:1.65rem; line-height:1; }
.client-meeting-date span { margin-top:.2rem; font-size:.6rem; font-weight:800; letter-spacing:.08em; }
.client-next-meeting h4 { margin:0; font-size:.84rem; }
.client-next-meeting p { margin:.25rem 0; color:var(--app-muted); font-size:.68rem; }
.client-next-meeting ul { margin:.55rem 0 .75rem; padding-left:1rem; color:var(--app-muted); font-size:.68rem; line-height:1.6; }
.client-billing-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.client-billing-summary > div { padding:.7rem; border:1px solid rgba(40,16,38,.08); border-radius:15px; background:rgba(255,255,255,.72); }
.client-billing-summary span,.client-billing-summary strong { display:block; }
.client-billing-summary span { color:var(--app-muted); font-size:.62rem; }
.client-billing-summary strong { margin-top:.25rem; font-family:"Fraunces",Georgia,serif; font-size:1.1rem; }
.client-invoice-row { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:.65rem; margin-top:.7rem; padding:.7rem; border-radius:15px; background:rgba(116,21,29,.05); }
.client-invoice-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; color:var(--app-wine); background:#fff; }
.client-invoice-row strong,.client-invoice-row span,.client-invoice-row small { display:block; }
.client-invoice-row strong { font-size:.74rem; }
.client-invoice-row span,.client-invoice-row small { color:var(--app-muted); font-size:.62rem; line-height:1.45; }
.client-risk-list { display:grid; gap:.65rem; }
.client-risk-item { display:grid; grid-template-columns:42px minmax(0,1fr); gap:.7rem; padding:.75rem; border:1px solid rgba(178,57,57,.16); border-radius:16px; background:rgba(178,57,57,.03); }
.client-risk-item > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; color:#a42f2f; background:#fff; }
.client-risk-item > div > div { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.client-risk-item strong { font-size:.76rem; }
.client-risk-item p { margin:.25rem 0; color:var(--app-muted); font-size:.7rem; line-height:1.5; }
.client-risk-item small { color:var(--app-muted); font-size:.62rem; line-height:1.45; }
.client-manager-list { display:grid; gap:.65rem; }
.client-manager-card { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.7rem; border:1px solid rgba(40,16,38,.08); border-radius:16px; background:rgba(255,255,255,.72); }
.client-manager-card strong,.client-manager-card span,.client-manager-card small { display:block; }
.client-manager-card strong { font-size:.76rem; }
.client-manager-card span,.client-manager-card small { color:var(--app-muted); font-size:.62rem; }
.client-account-review { display:grid; grid-template-columns:40px 1fr; align-items:center; gap:.65rem; padding:.7rem; border-radius:15px; background:rgba(197,138,69,.1); }
.client-account-review i { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; color:var(--app-wine); background:#fff; }
.client-account-review strong,.client-account-review small { display:block; }
.client-account-review strong { font-size:.72rem; }
.client-account-review small { color:var(--app-muted); font-size:.63rem; }
.client-dashboard-settings-form { max-width:760px; }
.client-widget-settings { display:grid; gap:.5rem; margin:0; padding:0; list-style:none; }
.client-widget-setting { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.6rem; padding:.65rem; border:1px solid var(--app-border); border-radius:15px; background:#fff; }
.client-widget-grip { display:grid; place-items:center; width:34px; height:34px; color:var(--app-muted); }
.client-widget-setting label { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.65rem; cursor:pointer; }
.client-widget-setting label input { width:18px; height:18px; accent-color:var(--app-wine); }
.client-widget-setting label strong,.client-widget-setting label small { display:block; }
.client-widget-setting label strong { font-size:.75rem; }
.client-widget-setting label small { margin-top:.12rem; color:var(--app-muted); font-size:.62rem; line-height:1.4; }
.client-widget-setting > div { display:flex; gap:.3rem; }
.client-widget-setting > div button { width:38px; height:38px; display:grid; place-items:center; padding:0; border:1px solid var(--app-border); border-radius:11px; color:var(--app-ink); background:#fff; cursor:pointer; }
.client-widget-setting > div button:disabled { opacity:.35; }

@media (max-width: 1250px) {
  .client-dashboard-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .client-dashboard-kpis > :nth-child(4),.client-dashboard-kpis > :nth-child(5) { grid-column: span 1; }
}
@media (max-width: 1000px) {
  .client-dashboard-widget { grid-column: 1 / -1; }
  .client-dashboard-projects { grid-template-columns: 1fr; }
  .client-dashboard-projects > * { grid-column: auto; }
}
@media (max-width: 760px) {
  .client-dashboard-toolbar { align-items:stretch; flex-direction:column; }
  .client-dashboard-toolbar-actions { width:100%; align-items:stretch; }
  .client-dashboard-toolbar-actions label { min-width:0; flex:1; }
  .client-dashboard-toolbar-actions .app-button { align-self:end; }
  .client-dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-dashboard-kpis > :last-child { grid-column:1 / -1; }
  .client-attention-item { grid-template-columns:42px minmax(0,1fr); }
  .client-attention-item > .app-button { grid-column:2; justify-self:start; }
}
@media (max-width: 560px) {
  .client-dashboard-toolbar { border-radius:20px; }
  .client-dashboard-toolbar-actions { flex-direction:column; }
  .client-dashboard-toolbar-actions .app-button { width:100%; align-self:stretch; }
  .client-dashboard-kpis { grid-template-columns:1fr 1fr; gap:.65rem; }
  .client-dashboard-kpis .app-metric-card { min-height:125px; }
  .client-dashboard-kpis > :last-child { grid-column:1 / -1; }
  .client-project-overview-meta { grid-template-columns:1fr; }
  .client-project-progress-row { grid-template-columns:auto 1fr; }
  .client-project-progress-row > span { grid-column:1 / -1; }
  .client-project-overview-actions .app-button { flex:1 1 100%; }
  .client-performance-grid { grid-template-columns:1fr; }
  .client-billing-summary { grid-template-columns:1fr; }
  .client-contact-shortcut,.client-manager-card { grid-template-columns:40px minmax(0,1fr); }
  .client-contact-shortcut .app-button,.client-manager-card .app-button { grid-column:1 / -1; width:100%; }
  .client-invoice-row { grid-template-columns:40px minmax(0,1fr); }
  .client-invoice-row .app-status { grid-column:2; justify-self:start; }
  .client-widget-setting { grid-template-columns:28px minmax(0,1fr); }
  .client-widget-setting > div { grid-column:2; }
  .client-widget-setting > div button { flex:1; }
}
@media (max-width: 380px) {
  .client-dashboard-kpis { grid-template-columns:1fr; }
  .client-dashboard-kpis > :last-child { grid-column:auto; }
  .client-project-overview-head { flex-direction:column; }
  .client-attention-item { grid-template-columns:1fr; }
  .client-attention-item > .app-button { grid-column:auto; width:100%; }
  .client-attention-icon { width:38px; height:38px; }
  .client-next-meeting { grid-template-columns:1fr; }
}

/* Block 6: client project portal */
.client-project-index,.client-project-detail{display:grid;gap:1rem;min-width:0}
.client-project-index-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem;padding:clamp(1.15rem,2.5vw,1.75rem);border:1px solid var(--app-border);border-radius:var(--app-radius-panel);background:radial-gradient(circle at 88% 8%,rgba(197,138,69,.18),transparent 30%),linear-gradient(135deg,rgba(40,16,38,.99),rgba(84,25,57,.95));color:#fff;box-shadow:0 18px 50px rgba(40,16,38,.12)}
.client-project-index-hero h2{margin:.3rem 0 .45rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.8rem,3.5vw,2.7rem);line-height:1}
.client-project-index-hero p{max-width:720px;margin:0;color:rgba(255,255,255,.72);font-size:.82rem;line-height:1.55}
.client-project-index-summary{display:grid;grid-template-columns:repeat(4,minmax(76px,1fr));gap:.55rem;min-width:min(100%,390px)}
.client-project-index-summary>div{padding:.72rem;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(255,255,255,.08);text-align:center}
.client-project-index-summary>div.is-alert{border-color:rgba(255,210,210,.25);background:rgba(160,42,50,.22)}
.client-project-index-summary strong,.client-project-index-summary span{display:block}
.client-project-index-summary strong{font-family:"Fraunces",Georgia,serif;font-size:1.35rem}.client-project-index-summary span{margin-top:.18rem;color:rgba(255,255,255,.68);font-size:.61rem;font-weight:700}
.client-project-list-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--app-border);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:var(--app-shadow-card)}
.client-project-list-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;min-height:44px;padding:0 .75rem;border:1px solid var(--app-border);border-radius:13px;background:#fff}
.client-project-list-search i{color:var(--app-muted)}.client-project-list-search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.75rem;color:var(--app-ink)}
.client-project-list-filters{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none}.client-project-list-filters::-webkit-scrollbar{display:none}
.client-project-sort{display:flex;align-items:center;gap:.45rem;color:var(--app-muted);font-size:.65rem;font-weight:800}.client-project-sort select{min-height:42px;padding:.55rem 2rem .55rem .7rem;border:1px solid var(--app-border);border-radius:12px;background:#fff;color:var(--app-ink)}
.client-project-portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.client-project-list-empty{display:block}.client-project-list-empty[hidden]{display:none}
.client-project-portfolio-card{position:relative;display:flex;flex-direction:column;overflow:hidden;min-width:0;padding:clamp(1rem,2vw,1.35rem);border:1px solid var(--app-border);border-radius:var(--app-radius-panel);background:linear-gradient(150deg,#fff,rgba(251,245,236,.72));box-shadow:var(--app-shadow-card)}
.client-project-portfolio-card[hidden]{display:none}.client-project-portfolio-accent{position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(var(--app-wine),rgba(197,138,69,.8))}
.client-project-portfolio-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.client-project-portfolio-head>div:first-child{min-width:0}.client-project-portfolio-head h3{margin:.28rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.08}.client-project-portfolio-status{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}
.client-project-portfolio-card>p{margin:.7rem 0 0;color:var(--app-muted);font-size:.76rem;line-height:1.55}
.client-project-portfolio-progress{margin-top:1rem;padding:.8rem;border-radius:16px;background:rgba(116,21,29,.045)}.client-project-portfolio-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.55rem}.client-project-portfolio-progress strong{font-family:"Fraunces",Georgia,serif;font-size:1.35rem}.client-project-portfolio-progress span{color:var(--app-muted);font-size:.65rem;font-weight:700}
.client-project-portfolio-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:.75rem}.client-project-portfolio-facts>div{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:.6rem;padding:.65rem;border:1px solid rgba(40,16,38,.08);border-radius:14px;background:rgba(255,255,255,.72)}
.client-project-portfolio-facts>div>i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.client-project-portfolio-facts small,.client-project-portfolio-facts strong{display:block}.client-project-portfolio-facts small{color:var(--app-muted);font-size:.58rem}.client-project-portfolio-facts strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem}
.client-project-portfolio-counts{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.client-project-portfolio-counts span{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .5rem;border-radius:999px;color:var(--app-muted);background:rgba(40,16,38,.045);font-size:.59rem;font-weight:700}.client-project-portfolio-counts span.is-alert{color:#9f3030;background:rgba(178,57,57,.08)}
.client-project-portfolio-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:1rem}
.client-project-detail-hero{display:grid;gap:1rem;padding:clamp(1rem,2.5vw,1.6rem);border:1px solid rgba(255,255,255,.08);border-radius:var(--app-radius-panel);background:radial-gradient(circle at 90% 10%,rgba(197,138,69,.2),transparent 30%),linear-gradient(135deg,#281026,#531837);color:#fff;box-shadow:0 22px 60px rgba(40,16,38,.16)}
.client-project-back{display:inline-flex;align-items:center;gap:.42rem;justify-self:start;padding:0;border:0;color:rgba(255,255,255,.72);background:transparent;font:inherit;font-size:.68rem;font-weight:800;cursor:pointer}.client-project-back:hover{color:#fff}
.client-project-detail-main{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:end;gap:1.25rem}.client-project-detail-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.client-project-detail-kicker>span:first-child{color:rgba(255,255,255,.62);font-size:.63rem;font-weight:800;letter-spacing:.12em}.client-project-detail-hero h2{margin:.45rem 0 .5rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(2rem,4.5vw,3.5rem);line-height:.96}.client-project-detail-hero p{max-width:790px;margin:0;color:rgba(255,255,255,.72);font-size:.82rem;line-height:1.55}
.client-project-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem}.client-project-tags span{padding:.28rem .5rem;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:rgba(255,255,255,.7);font-size:.58rem;font-weight:700}
.client-project-detail-progress{padding:1rem;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08)}.client-project-detail-progress>strong,.client-project-detail-progress>span,.client-project-detail-progress>small{display:block}.client-project-detail-progress>strong{font-family:"Fraunces",Georgia,serif;font-size:2.2rem}.client-project-detail-progress>span,.client-project-detail-progress>small{color:rgba(255,255,255,.66);font-size:.62rem}.client-project-detail-progress .app-progress{margin:.7rem 0}.client-project-detail-progress .app-progress span{background:linear-gradient(90deg,#fff,#d2a05d)}
.client-project-detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.client-project-detail-actions .app-button-primary{color:var(--app-wine);background:#fff;border-color:#fff}.client-project-detail-actions .app-button-secondary{color:#fff;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08)}
.client-project-manager-mini{display:grid;grid-template-columns:38px auto;align-items:center;gap:.55rem;margin-left:auto}.client-project-manager-mini small,.client-project-manager-mini strong{display:block}.client-project-manager-mini small{color:rgba(255,255,255,.58);font-size:.56rem}.client-project-manager-mini strong{font-size:.68rem}.client-project-manager-mini .dashboard-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.client-project-tabs{position:sticky;top:calc(var(--dashboard-topbar-height,72px) + .5rem);z-index:20;display:flex;gap:.35rem;overflow-x:auto;padding:.45rem;border:1px solid var(--app-border);border-radius:16px;background:rgba(255,253,249,.94);box-shadow:0 12px 30px rgba(40,16,38,.08);backdrop-filter:blur(14px);scrollbar-width:none}.client-project-tabs::-webkit-scrollbar{display:none}.client-project-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.38rem;flex:0 0 auto;min-height:42px;padding:.55rem .72rem;border:0;border-radius:12px;color:var(--app-muted);background:transparent;font:inherit;font-size:.66rem;font-weight:800;cursor:pointer}.client-project-tab:hover{color:var(--app-ink);background:rgba(40,16,38,.045)}.client-project-tab.is-active{color:#fff;background:var(--app-wine)}.client-project-tab small{display:grid;place-items:center;min-width:18px;height:18px;padding:0 .25rem;border-radius:999px;color:inherit;background:rgba(255,255,255,.16);font-size:.52rem}.client-project-tab:not(.is-active) small{color:var(--app-wine);background:rgba(116,21,29,.08)}
.client-project-view{min-width:0}.client-project-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.client-project-span-full{grid-column:1/-1}.client-project-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.client-project-kpi-strip .app-metric-card{min-height:132px}
.client-project-primary-card{border-color:rgba(116,21,29,.14)}.client-next-step{display:grid;grid-template-columns:46px minmax(0,1fr);gap:.75rem}.client-next-step>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#fff;background:var(--app-wine)}.client-next-step>div>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.client-next-step strong{font-size:.82rem}.client-next-step p{margin:.25rem 0 .55rem;color:var(--app-muted);font-size:.7rem}.client-next-step .app-card-link{margin-top:.7rem}
.client-project-definition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:0}.client-project-definition-list>div{padding:.65rem;border-radius:14px;background:rgba(40,16,38,.04)}.client-project-definition-list dt{color:var(--app-muted);font-size:.58rem;font-weight:800}.client-project-definition-list dd{margin:.25rem 0 0;font-size:.7rem;font-weight:700;line-height:1.45}
.client-project-alert-stack{display:grid;gap:.6rem}.client-project-alert,.client-project-change{display:grid;grid-template-columns:40px minmax(0,1fr);gap:.65rem;padding:.7rem;border:1px solid rgba(178,57,57,.14);border-radius:15px;background:rgba(178,57,57,.025)}.client-project-change{border-color:rgba(197,138,69,.2);background:rgba(197,138,69,.05)}.client-project-alert>span,.client-project-change>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#a42f2f;background:#fff}.client-project-change>span{color:var(--app-wine)}.client-project-alert>div>div,.client-project-change>div>div{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.client-project-alert strong,.client-project-change strong{font-size:.72rem}.client-project-alert p,.client-project-change p{margin:.2rem 0;color:var(--app-muted);font-size:.67rem;line-height:1.45}.client-project-alert small,.client-project-change small{color:var(--app-muted);font-size:.58rem}
.client-project-team-list{display:grid;gap:.5rem}.client-project-team-list article{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.58rem;border:1px solid rgba(40,16,38,.07);border-radius:14px;background:#fff}.client-project-team-list strong,.client-project-team-list small{display:block}.client-project-team-list strong{font-size:.7rem}.client-project-team-list small{color:var(--app-muted);font-size:.58rem}.client-project-team-list>article>i{color:#c58a45}
.client-project-activity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.client-project-activity article{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.6rem;padding:.65rem;border-radius:14px;background:rgba(40,16,38,.04)}.client-project-activity article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:var(--app-wine);background:#fff}.client-project-activity strong,.client-project-activity small{display:block}.client-project-activity strong{font-size:.68rem}.client-project-activity small{margin-top:.18rem;color:var(--app-muted);font-size:.57rem}
.client-project-roadmap{position:relative;display:grid;gap:.8rem}.client-project-roadmap::before{content:"";position:absolute;left:23px;top:25px;bottom:25px;width:1px;background:rgba(40,16,38,.12)}.client-project-roadmap-item{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:.75rem}.client-project-roadmap-marker{position:relative;z-index:1}.client-project-roadmap-marker span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--app-border);border-radius:15px;color:var(--app-wine);background:var(--app-paper);font-size:.72rem;font-weight:800}.client-project-roadmap-item.is-complete .client-project-roadmap-marker span{color:#fff;border-color:var(--app-wine);background:var(--app-wine)}.client-project-roadmap-item.is-blocked .client-project-roadmap-marker span{color:#a42f2f;border-color:rgba(178,57,57,.2);background:#fff4f4}.client-project-roadmap-card{padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-roadmap-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.client-project-roadmap-head span{color:var(--app-muted);font-size:.59rem}.client-project-roadmap-head h3{margin:.25rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:1.25rem}.client-project-roadmap-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;margin:.75rem 0}.client-project-roadmap-progress strong{font-size:.67rem}.client-project-roadmap-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.client-project-roadmap-resources>div{display:grid;align-content:start;gap:.35rem;padding:.65rem;border-radius:14px;background:rgba(40,16,38,.035)}.client-project-roadmap-resources>div>span{color:var(--app-muted);font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.client-project-roadmap-resources button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.45rem;border:0;border-radius:10px;color:var(--app-ink);background:#fff;text-align:left;font:inherit;font-size:.63rem;cursor:pointer}.client-project-roadmap-resources small{color:var(--app-muted);font-size:.62rem}
.client-project-view-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.client-project-view-toolbar h3{margin:0;font-family:"Fraunces",Georgia,serif;font-size:1.55rem}.client-project-view-toolbar p{margin:.25rem 0 0;color:var(--app-muted);font-size:.72rem}.client-project-task-summary{display:flex;gap:.5rem}.client-project-task-summary span{padding:.55rem .65rem;border:1px solid var(--app-border);border-radius:12px;color:var(--app-muted);background:#fff;font-size:.6rem}.client-project-task-summary strong{color:var(--app-ink);font-size:.8rem}
.client-project-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.client-project-task-card{display:flex;flex-direction:column;padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-task-card.needs-client{border-color:rgba(116,21,29,.22);box-shadow:0 0 0 3px rgba(116,21,29,.045),var(--app-shadow-card)}.client-project-task-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.client-project-task-priority{display:inline-flex;align-items:center;gap:.3rem;color:var(--app-muted);font-size:.59rem;font-weight:800}.client-project-task-card h3{margin:.7rem 0 .35rem;font-size:.88rem}.client-project-task-card>p{margin:0;color:var(--app-muted);font-size:.7rem;line-height:1.5}.client-project-task-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.65rem;color:var(--app-muted);font-size:.59rem}.client-project-task-meta span{display:inline-flex;align-items:center;gap:.25rem}.client-project-checklist{margin-top:.7rem;padding:.65rem;border-radius:14px;background:rgba(40,16,38,.035)}.client-project-checklist>div{display:flex;justify-content:space-between;color:var(--app-muted);font-size:.58rem;font-weight:800}.client-project-checklist p{display:flex;align-items:center;gap:.35rem;margin:.4rem 0 0;color:var(--app-muted);font-size:.62rem}.client-project-checklist p.is-complete{text-decoration:line-through;opacity:.65}.client-project-task-card-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.8rem}.client-project-task-card-actions>span{display:flex;flex-wrap:wrap;gap:.25rem}.client-project-task-card-actions small{padding:.25rem .4rem;border-radius:999px;color:var(--app-muted);background:rgba(40,16,38,.05);font-size:.54rem}
.client-project-deliverable-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.client-project-deliverable-card{display:flex;flex-direction:column;padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-deliverable-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:.65rem}.client-project-deliverable-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:var(--app-wine);background:rgba(116,21,29,.07);font-size:1.05rem}.client-project-deliverable-head span:not(.client-project-deliverable-icon){color:var(--app-muted);font-size:.58rem}.client-project-deliverable-head h3{margin:.22rem 0 0;font-size:.82rem}.client-project-deliverable-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.65rem;color:var(--app-muted);font-size:.58rem}.client-project-deliverable-files{display:grid;gap:.4rem;margin-top:.7rem}.client-project-deliverable-files button{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.55rem;border:1px solid rgba(40,16,38,.07);border-radius:12px;color:var(--app-ink);background:rgba(40,16,38,.025);text-align:left;cursor:pointer}.client-project-deliverable-files button>i:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--app-wine);background:#fff}.client-project-deliverable-files strong,.client-project-deliverable-files small{display:block}.client-project-deliverable-files strong{font-size:.64rem}.client-project-deliverable-files small{color:var(--app-muted);font-size:.54rem}.client-project-version-history{margin-top:.7rem;border-top:1px solid var(--app-border);border-bottom:1px solid var(--app-border)}.client-project-version-history summary{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;font-size:.64rem;font-weight:800;cursor:pointer}.client-project-version-history summary span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;color:var(--app-wine);background:rgba(116,21,29,.08);font-size:.52rem}.client-project-version-history article{padding:.6rem 0;border-top:1px solid rgba(40,16,38,.06)}.client-project-version-history article strong{font-size:.63rem}.client-project-version-history article p{margin:.2rem 0;color:var(--app-muted);font-size:.6rem}.client-project-version-history article small{color:var(--app-muted);font-size:.54rem}.client-project-deliverable-comments{margin-top:.65rem;padding:.6rem;border-radius:12px;background:rgba(197,138,69,.07)}.client-project-deliverable-comments>strong{font-size:.61rem}.client-project-deliverable-comments p{margin:.4rem 0 0;color:var(--app-muted);font-size:.6rem;line-height:1.45}.client-project-deliverable-comments small{font-size:.54rem}.client-project-deliverable-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.8rem}.client-project-deliverable-actions>span{color:var(--app-muted);font-size:.6rem}
.client-project-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.client-project-metric-card{padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-metric-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--app-muted);font-size:.63rem;font-weight:800}.client-project-metric-card>div:first-child i{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(40,16,38,.04)}.client-project-metric-card>strong{display:block;margin:.75rem 0 .15rem;font-family:"Fraunces",Georgia,serif;font-size:1.8rem}.client-project-metric-card>p{margin:0 0 .6rem;color:var(--app-muted);font-size:.61rem}.client-project-metric-card dl{display:grid;gap:.4rem;margin:.75rem 0 0;padding-top:.65rem;border-top:1px solid var(--app-border)}.client-project-metric-card dl>div{display:flex;justify-content:space-between;gap:.5rem;font-size:.57rem}.client-project-metric-card dt{color:var(--app-muted)}.client-project-metric-card dd{margin:0;text-align:right;font-weight:700}.trend-up{color:#237451}.trend-down{color:#a42f2f}.trend-stable{color:var(--app-muted)}
.client-project-folder-bar{display:flex;gap:.4rem;overflow-x:auto;margin-bottom:.75rem;scrollbar-width:none}.client-project-folder-bar::-webkit-scrollbar{display:none}.client-project-folder-bar button{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;min-height:40px;padding:.48rem .65rem;border:1px solid var(--app-border);border-radius:12px;color:var(--app-muted);background:#fff;font:inherit;font-size:.62rem;font-weight:800;cursor:pointer}.client-project-folder-bar button.is-active{color:#fff;border-color:var(--app-wine);background:var(--app-wine)}.client-project-folder-bar button span{display:grid;place-items:center;min-width:18px;height:18px;padding:0 .2rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:.5rem}.client-project-folder-bar button:not(.is-active) span{color:var(--app-wine);background:rgba(116,21,29,.07)}
.client-project-file-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.client-project-file-card{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;gap:.6rem;padding:.75rem;border:1px solid var(--app-border);border-radius:16px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-file-card[hidden]{display:none}.client-project-file-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:var(--app-wine);background:rgba(116,21,29,.07);font-size:1.05rem}.client-project-file-card strong,.client-project-file-card span,.client-project-file-card small{display:block}.client-project-file-card>div{min-width:0}.client-project-file-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem}.client-project-file-card>div>span,.client-project-file-card small{color:var(--app-muted);font-size:.54rem;line-height:1.45}.client-project-file-card>button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--app-border);border-radius:11px;color:var(--app-wine);background:#fff;cursor:pointer}
.client-project-communication{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:620px;overflow:hidden;border:1px solid var(--app-border);border-radius:var(--app-radius-panel);background:#fff;box-shadow:var(--app-shadow-card)}.client-project-communication>aside{padding:.7rem;border-right:1px solid var(--app-border);background:rgba(40,16,38,.025)}.client-project-communication>aside>div{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.client-project-communication>aside>div strong{font-size:.68rem}.client-project-communication>aside>div span{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;color:var(--app-wine);background:rgba(116,21,29,.08);font-size:.55rem;font-weight:800}.client-project-communication>aside>button{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:.5rem;width:100%;padding:.6rem;border:0;border-radius:12px;color:var(--app-muted);background:transparent;text-align:left;font:inherit;cursor:pointer}.client-project-communication>aside>button.is-active{color:var(--app-ink);background:#fff;box-shadow:0 8px 20px rgba(40,16,38,.06)}.client-project-communication>aside>button>i{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:var(--app-wine);background:rgba(116,21,29,.07)}.client-project-communication>aside strong,.client-project-communication>aside small{display:block}.client-project-communication>aside strong{font-size:.63rem}.client-project-communication>aside small{margin-top:.1rem;color:var(--app-muted);font-size:.52rem}
.client-project-chat{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0}.client-project-chat>header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.75rem 1rem;border-bottom:1px solid var(--app-border)}.client-project-chat>header strong,.client-project-chat>header span{display:block}.client-project-chat>header strong{font-size:.72rem}.client-project-chat>header span{color:var(--app-muted);font-size:.55rem}.client-project-chat>header button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--app-border);border-radius:11px;background:#fff;cursor:pointer}.client-project-chat-messages{display:grid;align-content:start;gap:.75rem;overflow-y:auto;padding:1rem;background:linear-gradient(rgba(251,245,236,.42),rgba(255,255,255,.85))}.client-project-chat-messages article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.5rem;max-width:78%}.client-project-chat-messages article.is-own{grid-template-columns:minmax(0,1fr) 34px;justify-self:end}.client-project-chat-messages article.is-own>.dashboard-avatar{grid-column:2;grid-row:1}.client-project-chat-messages article.is-own>div{grid-column:1;grid-row:1;background:var(--app-wine);color:#fff}.client-project-chat-messages article>div{padding:.65rem .75rem;border:1px solid var(--app-border);border-radius:5px 15px 15px 15px;background:#fff}.client-project-chat-messages article.is-own>div{border-color:var(--app-wine);border-radius:15px 5px 15px 15px}.client-project-chat-messages strong{font-size:.58rem}.client-project-chat-messages p{margin:.22rem 0;font-size:.69rem;line-height:1.5}.client-project-chat-messages time{display:block;color:var(--app-muted);font-size:.5rem}.client-project-chat-messages article.is-own time{color:rgba(255,255,255,.58)}.client-project-chat-messages button{display:inline-flex;align-items:center;gap:.3rem;margin-top:.3rem;padding:.25rem .4rem;border:0;border-radius:8px;color:inherit;background:rgba(40,16,38,.05);font:inherit;font-size:.54rem;cursor:pointer}.client-project-chat-messages article.is-own button{background:rgba(255,255,255,.12)}.client-project-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;padding:.75rem;border-top:1px solid var(--app-border)}.client-project-chat-form textarea{min-height:48px;max-height:140px;resize:vertical;padding:.7rem;border:1px solid var(--app-border);border-radius:13px;font:inherit;font-size:.7rem;outline:0}.client-project-chat-form textarea:focus{border-color:var(--app-wine);box-shadow:0 0 0 3px rgba(116,21,29,.08)}
.client-project-meeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.client-project-meeting-card{display:grid;grid-template-columns:66px minmax(0,1fr);gap:.8rem;padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:#fff;box-shadow:var(--app-shadow-card)}.client-project-meeting-date{display:grid;place-items:center;align-content:center;width:66px;height:74px;border-radius:18px;color:#fff;background:var(--app-wine)}.client-project-meeting-date strong,.client-project-meeting-date span{display:block;text-transform:uppercase}.client-project-meeting-date strong{font-family:"Fraunces",Georgia,serif;font-size:1.75rem;line-height:1}.client-project-meeting-date span{margin-top:.2rem;font-size:.56rem;font-weight:800}.client-project-meeting-content>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.client-project-meeting-content>div:first-child>span{color:var(--app-muted);font-size:.57rem}.client-project-meeting-content h3{margin:.45rem 0 .25rem;font-size:.82rem}.client-project-meeting-content>p{margin:0;color:var(--app-muted);font-size:.59rem}.client-project-meeting-agenda{margin:.65rem 0;padding:.65rem;border-radius:13px;background:rgba(40,16,38,.035)}.client-project-meeting-agenda strong{font-size:.59rem}.client-project-meeting-agenda ul{margin:.3rem 0 0;padding-left:1rem;color:var(--app-muted);font-size:.6rem;line-height:1.55}.client-project-meeting-card blockquote{margin:.55rem 0;padding:.55rem .65rem;border-left:3px solid #c58a45;color:var(--app-muted);background:rgba(197,138,69,.06);font-size:.61rem;line-height:1.5}
.client-project-budget>div:first-child{display:flex;align-items:baseline;gap:.35rem}.client-project-budget>div:first-child strong{font-family:"Fraunces",Georgia,serif;font-size:1.8rem}.client-project-budget>div:first-child span{color:var(--app-muted);font-size:.62rem}.client-project-budget .app-progress{margin:.7rem 0}.client-project-budget dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:0}.client-project-budget dl>div{padding:.6rem;border-radius:13px;background:rgba(40,16,38,.04)}.client-project-budget dt{color:var(--app-muted);font-size:.55rem}.client-project-budget dd{margin:.18rem 0 0;font-size:.68rem;font-weight:800}.client-project-invoice-list{display:grid;gap:.5rem}.client-project-invoice-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto 34px;align-items:center;gap:.55rem;padding:.6rem;border:1px solid rgba(40,16,38,.07);border-radius:13px}.client-project-invoice-list article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--app-wine);background:rgba(116,21,29,.07)}.client-project-invoice-list strong,.client-project-invoice-list small{display:block}.client-project-invoice-list strong{font-size:.64rem}.client-project-invoice-list small{color:var(--app-muted);font-size:.53rem}.client-project-invoice-list article>div:nth-child(3){text-align:right}.client-project-invoice-list article>button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--app-border);border-radius:10px;background:#fff;cursor:pointer}

@media (max-width:1180px){.client-project-list-toolbar{grid-template-columns:1fr auto}.client-project-list-filters{grid-column:1/-1;grid-row:2}.client-project-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.client-project-metric-grid,.client-project-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.client-project-index-hero{align-items:stretch;flex-direction:column}.client-project-index-summary{min-width:0}.client-project-detail-main{grid-template-columns:1fr}.client-project-detail-progress{max-width:none}.client-project-manager-mini{margin-left:0}.client-project-tabs{top:.5rem}.client-project-view-grid{grid-template-columns:1fr}.client-project-span-full{grid-column:auto}.client-project-task-grid,.client-project-deliverable-grid,.client-project-meeting-grid{grid-template-columns:1fr}.client-project-communication{grid-template-columns:210px minmax(0,1fr)}}
@media (max-width:760px){.client-project-portfolio-grid{grid-template-columns:1fr}.client-project-list-toolbar{grid-template-columns:1fr}.client-project-sort{justify-content:space-between}.client-project-list-filters{grid-column:auto;grid-row:auto}.client-project-tabs{margin-inline:-.15rem;border-radius:14px}.client-project-tab{min-width:max-content}.client-project-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.client-project-activity,.client-project-roadmap-resources{grid-template-columns:1fr}.client-project-metric-grid,.client-project-file-grid{grid-template-columns:1fr}.client-project-communication{grid-template-columns:1fr;min-height:680px}.client-project-communication>aside{display:flex;gap:.4rem;overflow-x:auto;border-right:0;border-bottom:1px solid var(--app-border);scrollbar-width:none}.client-project-communication>aside::-webkit-scrollbar{display:none}.client-project-communication>aside>div{display:none}.client-project-communication>aside>button{flex:0 0 min(230px,80vw)}.client-project-chat-messages article{max-width:90%}}
@media (max-width:560px){.client-project-index-hero,.client-project-detail-hero{border-radius:20px}.client-project-index-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.client-project-list-toolbar{padding:.6rem}.client-project-list-filters{margin-inline:-.1rem}.client-project-portfolio-facts{grid-template-columns:1fr}.client-project-portfolio-actions .app-button{flex:1 1 100%}.client-project-detail-hero h2{font-size:2.05rem}.client-project-detail-actions .app-button{flex:1 1 calc(50% - .25rem)}.client-project-manager-mini{width:100%;padding-top:.35rem;border-top:1px solid rgba(255,255,255,.12)}.client-project-kpi-strip{grid-template-columns:1fr}.client-project-definition-list{grid-template-columns:1fr}.client-project-view-toolbar{align-items:stretch;flex-direction:column}.client-project-task-summary{width:100%}.client-project-task-summary span{flex:1}.client-project-roadmap-item{grid-template-columns:38px minmax(0,1fr);gap:.55rem}.client-project-roadmap::before{left:18px}.client-project-roadmap-marker span{width:38px;height:38px;border-radius:12px}.client-project-roadmap-head{align-items:flex-start;flex-direction:column}.client-project-deliverable-head{grid-template-columns:40px minmax(0,1fr)}.client-project-deliverable-head>.app-status{grid-column:2;justify-self:start}.client-project-file-card{grid-template-columns:40px minmax(0,1fr) 34px}.client-project-chat-form{grid-template-columns:1fr}.client-project-chat-form .app-button{width:100%}.client-project-meeting-card{grid-template-columns:1fr}.client-project-meeting-date{width:58px;height:64px}.client-project-invoice-list article{grid-template-columns:36px minmax(0,1fr) 34px}.client-project-invoice-list article>div:nth-child(3){grid-column:2;text-align:left}.client-project-invoice-list article>button{grid-column:3;grid-row:1/3}.client-project-budget dl{grid-template-columns:1fr}}
@media (max-width:380px){.client-project-detail-actions .app-button{flex:1 1 100%}.client-project-index-summary{grid-template-columns:1fr 1fr}.client-project-portfolio-head{flex-direction:column}.client-project-portfolio-status{justify-content:flex-start}.client-project-chat-messages article{max-width:100%;grid-template-columns:30px minmax(0,1fr)}.client-project-chat-messages article.is-own{grid-template-columns:minmax(0,1fr) 30px}}

/* Block 7 — client approval workspace */
.client-approvals-page{display:grid;gap:1rem}.client-approvals-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:clamp(1.15rem,2.5vw,1.8rem);border:1px solid rgba(197,138,69,.28);border-radius:26px;color:#fff;background:linear-gradient(135deg,#281026 0%,#45142b 62%,#74151d 100%);box-shadow:var(--app-shadow)}.client-approvals-hero::after{content:"";position:absolute;right:-80px;bottom:-120px;width:280px;height:280px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025)}.client-approvals-hero>div{position:relative;z-index:1}.client-approvals-hero h2{max-width:680px;margin:.25rem 0 .45rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.03}.client-approvals-hero p{max-width:680px;margin:0;color:rgba(255,255,255,.74);font-size:.72rem;line-height:1.6}.client-approval-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));min-width:min(360px,42%);border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.07);backdrop-filter:blur(12px)}.client-approval-hero-stats article{padding:.85rem;text-align:center}.client-approval-hero-stats article+article{border-left:1px solid rgba(255,255,255,.12)}.client-approval-hero-stats span,.client-approval-hero-stats strong{display:block}.client-approval-hero-stats span{color:rgba(255,255,255,.68);font-size:.53rem;text-transform:uppercase;letter-spacing:.08em}.client-approval-hero-stats strong{margin-top:.25rem;font-family:"Fraunces",Georgia,serif;font-size:1.5rem}.client-approval-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;padding:.65rem;border:1px solid var(--app-border);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:var(--app-shadow-card)}.client-approval-filter-tabs{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none}.client-approval-filter-tabs::-webkit-scrollbar{display:none}.client-approval-filter-tabs button{display:flex;align-items:center;gap:.38rem;min-height:38px;padding:.48rem .65rem;border:0;border-radius:12px;color:var(--app-muted);background:transparent;font-size:.62rem;font-weight:800;white-space:nowrap;cursor:pointer}.client-approval-filter-tabs button span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 .25rem;border-radius:999px;background:rgba(40,16,38,.07);font-size:.5rem}.client-approval-filter-tabs button.is-active{color:var(--app-wine);background:rgba(116,21,29,.08)}.client-approval-selects{display:flex;gap:.5rem}.client-approval-selects label{display:grid;gap:.2rem}.client-approval-selects label>span{padding-left:.2rem;color:var(--app-muted);font-size:.48rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.client-approval-selects select{min-height:38px;padding:.45rem 2rem .45rem .65rem;border:1px solid var(--app-border);border-radius:11px;color:var(--app-ink);background:#fff;font-size:.6rem;font-weight:700}.client-approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.client-approval-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:280px;padding:1rem;border:1px solid var(--app-border);border-radius:20px;background:#fff;box-shadow:var(--app-shadow-card)}.client-approval-card-accent{position:absolute;inset:0 auto 0 0;width:4px;background:rgba(40,16,38,.12)}.client-approval-card.is-pending .client-approval-card-accent{background:linear-gradient(180deg,var(--app-gold),var(--app-wine))}.client-approval-card-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:start;gap:.7rem}.client-approval-type{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:var(--app-wine);background:rgba(116,21,29,.08);font-size:1.05rem}.client-approval-card-head>div>span{color:var(--app-muted);font-size:.54rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.client-approval-card-head h3{margin:.18rem 0;font-size:.78rem;line-height:1.35}.client-approval-card-head small{color:var(--app-muted);font-size:.55rem}.client-approval-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}.client-approval-card-meta>span:not(.app-status){display:inline-flex;align-items:center;gap:.25rem;color:var(--app-muted);font-size:.54rem}.client-approval-summary{margin:.7rem 0 0;color:var(--app-muted);font-size:.65rem;line-height:1.55}.client-approval-revision{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.55rem;margin-top:.7rem;padding:.65rem;border:1px solid rgba(168,61,61,.12);border-radius:13px;background:rgba(168,61,61,.055)}.client-approval-revision>i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#9f3434;background:#fff}.client-approval-revision strong,.client-approval-revision small{display:block}.client-approval-revision strong{font-size:.61rem}.client-approval-revision small{margin-top:.12rem;color:var(--app-muted);font-size:.55rem;line-height:1.4}.client-approval-note{margin:.7rem 0 0;padding:.65rem .75rem;border-left:3px solid var(--app-gold);border-radius:0 12px 12px 0;color:var(--app-ink);background:rgba(197,138,69,.07);font-size:.62rem;line-height:1.5}.client-approval-note small{display:block;margin-top:.3rem;color:var(--app-muted);font-size:.52rem}.client-approval-card footer{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-top:auto;padding-top:.85rem}.client-approval-card footer>span{max-width:52%;color:var(--app-muted);font-size:.52rem;line-height:1.4;text-align:right}

.app-dialog[data-mode="approval-review"]{width:min(1160px,calc(100vw - 2rem));max-height:94dvh;padding:0;overflow:hidden}.app-dialog[data-mode="approval-review"]>form{top:.8rem;right:.8rem}.app-dialog[data-mode="approval-review"]>[data-dialog-content]{max-height:94dvh;overflow-y:auto;overscroll-behavior:contain}.client-approval-review{display:grid;min-height:min(760px,90dvh);background:var(--app-paper)}.client-approval-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.35rem 4.2rem 1.05rem 1.35rem;border-bottom:1px solid var(--app-border);background:linear-gradient(145deg,#fff 0%,#fffaf3 100%)}.client-approval-review-head h2{margin:.2rem 0;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.55rem,2.7vw,2.35rem);line-height:1}.client-approval-review-head p{margin:0;color:var(--app-muted);font-size:.65rem}.client-approval-review-head>div:last-child{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.client-approval-review-nav{position:sticky;top:0;z-index:3;display:flex;gap:.25rem;padding:.55rem 1.35rem;border-bottom:1px solid var(--app-border);background:rgba(255,253,249,.94);backdrop-filter:blur(16px)}.client-approval-review-nav a{padding:.45rem .6rem;border-radius:10px;color:var(--app-muted);font-size:.58rem;font-weight:800;text-decoration:none}.client-approval-review-nav a:hover,.client-approval-review-nav a:focus-visible{color:var(--app-wine);background:rgba(116,21,29,.07)}.client-approval-review-section{padding:1.2rem 1.35rem;scroll-margin-top:58px}.client-approval-review-section+.client-approval-review-section{border-top:1px solid var(--app-border)}.client-approval-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;margin-bottom:.75rem}.client-approval-section-head span{color:var(--app-gold);font-size:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.client-approval-section-head h3{margin:.12rem 0 0;font-size:.83rem}.client-approval-section-head small{color:var(--app-muted);font-size:.55rem}.client-approval-section-head label{display:grid;gap:.2rem;color:var(--app-muted);font-size:.5rem;font-weight:800}.client-approval-section-head select{min-height:36px;padding:.4rem 2rem .4rem .6rem;border:1px solid var(--app-border);border-radius:10px;background:#fff;font-size:.58rem}.client-approval-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.client-approval-version-panel{display:flex;flex-direction:column;min-width:0;padding:.8rem;border:1px solid var(--app-border);border-radius:17px;background:#fff}.client-approval-version-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.client-approval-version-panel>header span:not(.app-status){color:var(--app-muted);font-size:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.client-approval-version-panel h3{margin:.15rem 0 0;font-size:.76rem}.client-approval-preview{display:grid;place-items:center;min-height:150px;margin-top:.65rem;padding:1rem;border:1px dashed rgba(40,16,38,.13);border-radius:14px;background:radial-gradient(circle at 20% 20%,rgba(197,138,69,.1),transparent 35%),linear-gradient(145deg,#fffaf4,#f7f2ed);text-align:center}.client-approval-preview i{font-size:2rem;color:var(--app-wine)}.client-approval-preview strong{margin-top:.45rem;font-size:.66rem}.client-approval-preview span{margin-top:.18rem;color:var(--app-muted);font-size:.52rem}.client-approval-version-panel>p{margin:.65rem 0 0;color:var(--app-muted);font-size:.61rem;line-height:1.5}.client-approval-version-panel>ul{display:grid;gap:.35rem;margin:.65rem 0 0;padding:0;list-style:none}.client-approval-version-panel>ul li{display:flex;align-items:flex-start;gap:.35rem;color:var(--app-ink);font-size:.58rem;line-height:1.4}.client-approval-version-panel>ul i{color:var(--app-gold)}.client-approval-version-files{display:grid;gap:.35rem;margin-top:auto;padding-top:.7rem}.client-approval-version-files button{display:grid;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:.5rem;padding:.48rem;border:1px solid rgba(40,16,38,.07);border-radius:11px;color:var(--app-ink);background:rgba(40,16,38,.025);text-align:left;cursor:pointer}.client-approval-version-files button>i:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--app-wine);background:#fff}.client-approval-version-files strong,.client-approval-version-files small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-approval-version-files strong{font-size:.58rem}.client-approval-version-files small,.client-approval-no-files{color:var(--app-muted);font-size:.5rem}.client-approval-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.client-approval-checklist label{display:block}.client-approval-checklist input{position:absolute;opacity:0}.client-approval-checklist label>span{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:.5rem;min-height:70px;padding:.65rem;border:1px solid var(--app-border);border-radius:14px;background:#fff;color:var(--app-ink);font-size:.58rem;line-height:1.4}.client-approval-checklist label strong{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:var(--app-wine);background:rgba(116,21,29,.07)}.client-approval-checklist input:checked+span{border-color:rgba(66,129,94,.24);background:rgba(66,129,94,.055)}.client-approval-open-revision{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.65rem;margin-top:.75rem;padding:.75rem;border:1px solid rgba(168,61,61,.14);border-radius:14px;background:rgba(168,61,61,.05)}.client-approval-open-revision>i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#9f3434;background:#fff}.client-approval-open-revision strong{font-size:.65rem}.client-approval-open-revision p{margin:.2rem 0;color:var(--app-muted);font-size:.58rem;line-height:1.45}.client-approval-open-revision ul{margin:.4rem 0 0;padding-left:1rem;color:var(--app-muted);font-size:.54rem}.client-approval-comments{display:grid;gap:.5rem}.client-approval-comments article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.55rem;padding:.6rem;border:1px solid rgba(40,16,38,.07);border-radius:13px;background:#fff}.client-approval-comments article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#fff;background:var(--app-wine);font-size:.6rem;font-weight:800}.client-approval-comments strong{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.59rem}.client-approval-comments strong small{color:var(--app-muted);font-size:.49rem;font-weight:500}.client-approval-comments p{margin:.25rem 0 0;color:var(--app-muted);font-size:.58rem;line-height:1.45}.client-approval-timeline{position:relative;display:grid;gap:.25rem}.client-approval-timeline::before{content:"";position:absolute;top:17px;bottom:17px;left:17px;width:1px;background:var(--app-border)}.client-approval-timeline article{position:relative;z-index:1;display:grid;grid-template-columns:35px minmax(0,1fr);align-items:center;gap:.55rem;padding:.45rem 0}.client-approval-timeline article>span{display:grid;place-items:center;width:35px;height:35px;border:4px solid var(--app-paper);border-radius:50%;color:var(--app-wine);background:#fff;box-shadow:0 0 0 1px var(--app-border)}.client-approval-timeline strong,.client-approval-timeline small{display:block}.client-approval-timeline strong{font-size:.59rem}.client-approval-timeline small{margin-top:.12rem;color:var(--app-muted);font-size:.5rem}.client-approval-decision-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1.35rem calc(.8rem + env(safe-area-inset-bottom));border-top:1px solid var(--app-border);background:rgba(255,253,249,.96);box-shadow:0 -12px 36px rgba(40,16,38,.08);backdrop-filter:blur(18px)}.client-approval-decision-bar>div:first-child{display:flex;align-items:center;gap:.55rem;min-width:0}.client-approval-decision-bar>div:first-child>i{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.client-approval-decision-bar strong,.client-approval-decision-bar small{display:block}.client-approval-decision-bar strong{font-size:.63rem}.client-approval-decision-bar small{margin-top:.12rem;color:var(--app-muted);font-size:.51rem}.client-approval-decision-actions{display:flex;justify-content:flex-end;gap:.4rem}.client-approval-decision-form{max-width:620px;margin-inline:auto}.client-approval-decision-warning{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.55rem;padding:.65rem;border:1px solid rgba(197,138,69,.2);border-radius:13px;background:rgba(197,138,69,.07)}.client-approval-decision-warning>i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--app-gold);background:#fff}.client-approval-decision-warning strong,.client-approval-decision-warning small{display:block}.client-approval-decision-warning strong{font-size:.62rem}.client-approval-decision-warning small{margin-top:.15rem;color:var(--app-muted);font-size:.54rem;line-height:1.4}.client-approval-acknowledge{grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;padding:.65rem;border:1px solid var(--app-border);border-radius:13px;background:#fff}.client-approval-acknowledge input{width:18px!important;height:18px;margin-top:.05rem;accent-color:var(--app-wine)}.client-approval-acknowledge span{font-size:.59rem;line-height:1.45}

@media(max-width:900px){.client-approvals-hero{align-items:stretch;flex-direction:column}.client-approval-hero-stats{min-width:0;width:100%}.client-approval-grid{grid-template-columns:1fr}.client-approval-toolbar{align-items:stretch;flex-direction:column}.client-approval-selects{justify-content:flex-end}.client-approval-compare{grid-template-columns:1fr}.client-approval-checklist{grid-template-columns:1fr}.client-approval-decision-bar{align-items:stretch;flex-direction:column}.client-approval-decision-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.client-approval-decision-actions .app-button{min-width:0;padding-inline:.5rem}}
@media(max-width:620px){.client-approvals-hero{border-radius:20px}.client-approval-hero-stats article{padding:.65rem .35rem}.client-approval-hero-stats strong{font-size:1.25rem}.client-approval-toolbar{margin-inline:-.2rem}.client-approval-selects{display:grid;grid-template-columns:1fr 1fr}.client-approval-selects select{width:100%}.client-approval-card{min-height:0;border-radius:17px}.client-approval-card-head{grid-template-columns:40px minmax(0,1fr)}.client-approval-type{width:40px;height:40px}.client-approval-card-head>.app-status{grid-column:2;justify-self:start}.client-approval-card footer{align-items:stretch;flex-direction:column}.client-approval-card footer .app-button{width:100%}.client-approval-card footer>span{max-width:none;text-align:left}.app-dialog[data-mode="approval-review"]{width:100%;max-height:96dvh;border-radius:24px 24px 0 0}.app-dialog[data-mode="approval-review"]>[data-dialog-content]{max-height:96dvh}.client-approval-review-head{align-items:flex-start;flex-direction:column;padding:1.1rem 3.8rem .85rem 1rem}.client-approval-review-head>div:last-child{justify-content:flex-start}.client-approval-review-nav{padding:.45rem .75rem;overflow-x:auto}.client-approval-review-nav a{white-space:nowrap}.client-approval-review-section{padding:1rem}.client-approval-section-head{align-items:stretch;flex-direction:column}.client-approval-section-head select{width:100%}.client-approval-preview{min-height:120px}.client-approval-decision-bar{padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom))}.client-approval-decision-actions{grid-template-columns:1fr}.client-approval-decision-actions .app-button{width:100%}.client-approval-comments strong{align-items:flex-start;flex-direction:column}.client-approval-decision-form .app-form-actions{display:grid;grid-template-columns:1fr}.client-approval-decision-form .app-form-actions .app-button{width:100%}}
@media(max-width:380px){.client-approval-hero-stats span{font-size:.44rem}.client-approval-selects{grid-template-columns:1fr}.client-approval-filter-tabs button{padding-inline:.5rem}.client-approval-card{padding:.85rem}.client-approval-review-head h2{font-size:1.45rem}.client-approval-review-nav{margin-right:0}.client-approval-review-section{padding:.85rem}.client-approval-version-panel{padding:.65rem}}

/* Block 8: client profile, organization and account self-service */
.account-settings-shell{display:grid;gap:1rem;min-width:0}
.account-settings-tabs{position:sticky;top:calc(var(--dashboard-topbar-height,72px) + .45rem);z-index:18;display:flex;gap:.35rem;overflow-x:auto;padding:.45rem;border:1px solid var(--app-border);border-radius:16px;background:rgba(255,253,249,.95);box-shadow:0 12px 30px rgba(40,16,38,.07);backdrop-filter:blur(16px);scrollbar-width:none}
.account-settings-tabs::-webkit-scrollbar{display:none}
.account-settings-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:.42rem;flex:1 0 auto;min-height:42px;padding:.55rem .72rem;border:0;border-radius:12px;color:var(--app-muted);background:transparent;font:inherit;font-size:.66rem;font-weight:800;cursor:pointer;white-space:nowrap}
.account-settings-tabs button:hover{color:var(--app-ink);background:rgba(40,16,38,.045)}
.account-settings-tabs button.is-active{color:#fff;background:var(--app-wine);box-shadow:0 8px 20px rgba(40,16,38,.16)}
.account-settings-tabs i{font-size:.92rem}
.account-settings-panel{min-width:0}
.account-settings-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);gap:1rem;align-items:start}
.account-settings-aside,.members-workspace-aside{display:grid;gap:1rem;min-width:0}
.account-avatar-editor,.organization-brand-editor{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;border:1px solid var(--app-border);border-radius:17px;background:linear-gradient(145deg,rgba(116,21,29,.035),rgba(197,138,69,.055))}
.account-avatar-preview,.organization-logo-preview{display:grid;place-items:center;overflow:hidden;width:96px;height:96px;border:1px solid rgba(40,16,38,.09);border-radius:24px;color:#fff;background:linear-gradient(145deg,var(--app-wine),#6f2b4b);font-family:"Fraunces",Georgia,serif;font-size:2.1rem;box-shadow:0 12px 28px rgba(40,16,38,.13)}
.organization-logo-preview{border-radius:18px;background:#fff}
.account-avatar-preview img,.organization-logo-preview img{width:100%;height:100%;object-fit:cover}
.organization-logo-preview img{object-fit:contain;padding:.55rem}
.account-avatar-editor strong,.organization-brand-editor strong{display:block;font-size:.76rem}
.account-avatar-editor p,.organization-brand-editor p{margin:.25rem 0 .65rem;color:var(--app-muted);font-size:.62rem;line-height:1.45}
.account-avatar-editor>div:last-child,.organization-brand-editor>div:last-child{min-width:0}
.account-avatar-editor .app-button+.app-button{margin-left:.35rem}
.account-completion{display:grid;gap:.45rem;margin-top:.8rem;padding:.75rem;border-radius:14px;background:rgba(40,16,38,.035)}
.account-completion>span{color:var(--app-muted);font-size:.62rem}.account-completion strong{color:var(--app-ink)}
.account-completion>div,.account-limit-list article>div,.member-organization-capacity>div{overflow:hidden;height:7px;border-radius:999px;background:rgba(40,16,38,.09)}
.account-completion i,.account-limit-list i,.member-organization-capacity i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-wine),var(--app-gold))}
.account-definition-list{display:grid;gap:.75rem;margin:0}.account-definition-list>div{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1fr);gap:.65rem;padding-bottom:.65rem;border-bottom:1px solid var(--app-border)}.account-definition-list>div:last-child{padding-bottom:0;border-bottom:0}.account-definition-list dt{color:var(--app-muted);font-size:.58rem;font-weight:700}.account-definition-list dd{margin:0;text-align:right;font-size:.63rem;font-weight:800;overflow-wrap:anywhere}
.account-help-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.7rem}.account-help-card>i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.account-help-card h3{margin:0;font-size:.72rem}.account-help-card p{margin:.25rem 0 0;color:var(--app-muted);font-size:.6rem;line-height:1.5}
.account-fieldset{margin:.8rem 0 0;padding:.9rem;border:1px solid var(--app-border);border-radius:16px}.account-fieldset legend{padding:0 .35rem;color:var(--app-ink);font-size:.67rem;font-weight:800}
.account-limit-list{display:grid;gap:.85rem;margin-bottom:1rem}.account-limit-list article{display:grid;gap:.4rem}.account-limit-list article>span{display:flex;align-items:flex-end;justify-content:space-between;gap:.7rem}.account-limit-list strong,.account-limit-list small{display:block}.account-limit-list strong{font-family:"Fraunces",Georgia,serif;font-size:1.25rem}.account-limit-list small{color:var(--app-muted);font-size:.58rem}
.notification-preference-table{overflow:hidden;border:1px solid var(--app-border);border-radius:16px}
.notification-preference-head,.notification-preference-row{display:grid;grid-template-columns:minmax(240px,1fr) 72px 72px 72px;align-items:center;gap:.25rem;padding:.65rem .75rem}
.notification-preference-head{color:var(--app-muted);background:rgba(40,16,38,.035);font-size:.54rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.notification-preference-head span:not(:first-child){text-align:center}
.notification-preference-row{border-top:1px solid var(--app-border);background:#fff}
.notification-preference-row>span:first-child{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.6rem}.notification-preference-row>span:first-child>i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--app-wine);background:rgba(116,21,29,.065)}
.notification-preference-row strong,.notification-preference-row small{display:block}.notification-preference-row strong{font-size:.64rem}.notification-preference-row small{margin-top:.12rem;color:var(--app-muted);font-size:.53rem;line-height:1.35}
.notification-preference-row>label{display:grid;place-items:center}.notification-preference-row input{width:18px;height:18px;accent-color:var(--app-wine)}
.account-security-score{text-align:center}.account-security-ring{display:grid;place-items:center;width:132px;height:132px;margin:.25rem auto 1rem;border-radius:50%;background:radial-gradient(circle,#fff 56%,transparent 58%),conic-gradient(var(--app-wine) 0 75%,rgba(40,16,38,.08) 75% 100%)}.account-security-ring strong,.account-security-ring span{grid-area:1/1}.account-security-ring strong{margin-top:-.8rem;font-family:"Fraunces",Georgia,serif;font-size:1.7rem}.account-security-ring span{margin-top:1.5rem;color:var(--app-muted);font-size:.55rem}.account-security-score ul{display:grid;gap:.4rem;margin:0;padding:0;list-style:none;text-align:left}.account-security-score li{display:flex;align-items:center;gap:.45rem;padding:.48rem .6rem;border-radius:10px;color:var(--app-muted);background:rgba(40,16,38,.035);font-size:.58rem}.account-security-score li.is-done{color:#31704f;background:rgba(49,112,79,.07)}
.account-payment-methods{display:grid;gap:.55rem;margin-bottom:.75rem}.account-payment-methods article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.65rem;border:1px solid var(--app-border);border-radius:13px;background:#fff}.account-payment-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07);font-size:1.15rem}.account-payment-methods strong,.account-payment-methods small{display:block}.account-payment-methods strong{font-size:.62rem}.account-payment-methods small{margin-top:.12rem;color:var(--app-muted);font-size:.52rem}
.privacy-action-list{display:grid;gap:.65rem}.privacy-action-list article{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.8rem;border:1px solid var(--app-border);border-radius:15px;background:#fff}.privacy-action-list article>span:first-child{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;color:var(--app-wine);background:rgba(116,21,29,.07);font-size:1.05rem}.privacy-action-list strong{font-size:.67rem}.privacy-action-list p{margin:.18rem 0 0;color:var(--app-muted);font-size:.56rem;line-height:1.4}.privacy-history{margin-top:1rem}.privacy-history h3{margin:0 0 .5rem;font-size:.68rem}.privacy-history>article{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--app-border)}.privacy-history strong,.privacy-history small{display:block}.privacy-history strong{font-size:.6rem}.privacy-history small{margin-top:.12rem;color:var(--app-muted);font-size:.5rem}.privacy-history>p{color:var(--app-muted);font-size:.6rem}
.privacy-consents{display:grid;gap:.45rem}.privacy-consents article{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.55rem;padding:.55rem;border-radius:12px;background:rgba(49,112,79,.055)}.privacy-consents i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#31704f;background:#fff}.privacy-consents strong,.privacy-consents small{display:block}.privacy-consents strong{font-size:.6rem}.privacy-consents small{margin-top:.1rem;color:var(--app-muted);font-size:.5rem}.privacy-danger-zone{border-color:rgba(168,61,61,.18);background:linear-gradient(145deg,#fff,rgba(168,61,61,.035))}.privacy-danger-zone>p{color:var(--app-muted);font-size:.59rem;line-height:1.5}
.member-organization-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px) auto;align-items:center;gap:1rem;background:radial-gradient(circle at 80% 0,rgba(197,138,69,.12),transparent 35%),linear-gradient(145deg,#fff,rgba(251,245,236,.75))}.member-organization-identity{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:.75rem}.member-organization-logo{display:grid;place-items:center;overflow:hidden;width:58px;height:58px;border:1px solid var(--app-border);border-radius:16px;color:#fff;background:var(--app-wine);font-family:"Fraunces",Georgia,serif;font-size:1.3rem}.member-organization-logo img{width:100%;height:100%;object-fit:contain;padding:.35rem;background:#fff}.member-organization-identity small,.member-organization-identity strong,.member-organization-identity em{display:block}.member-organization-identity small{color:var(--app-muted);font-size:.5rem;text-transform:uppercase;letter-spacing:.08em}.member-organization-identity strong{margin-top:.12rem;font-family:"Fraunces",Georgia,serif;font-size:1.25rem}.member-organization-identity em{margin-top:.1rem;color:var(--app-muted);font-size:.55rem;font-style:normal}.member-organization-capacity{display:grid;gap:.4rem}.member-organization-capacity>span{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem}.member-organization-capacity strong{font-family:"Fraunces",Georgia,serif;font-size:1.1rem}.member-organization-capacity small{color:var(--app-muted);font-size:.52rem}.members-workspace-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.55fr);gap:1rem;align-items:start}.member-invitation-list{display:grid;gap:.5rem}.member-invitation-list article{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.5rem;border:1px solid var(--app-border);border-radius:12px}.member-invitation-list strong,.member-invitation-list small{display:block;overflow:hidden;text-overflow:ellipsis}.member-invitation-list strong{font-size:.58rem}.member-invitation-list small{margin-top:.1rem;color:var(--app-muted);font-size:.49rem}.member-access-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.member-access-stats article{padding:.6rem .35rem;border-radius:12px;background:rgba(40,16,38,.035);text-align:center}.member-access-stats strong,.member-access-stats span{display:block}.member-access-stats strong{font-family:"Fraunces",Georgia,serif;font-size:1.2rem}.member-access-stats span{margin-top:.12rem;color:var(--app-muted);font-size:.5rem}.members-workspace-aside .app-card>p{color:var(--app-muted);font-size:.57rem;line-height:1.5}

@media(max-width:1050px){.account-settings-grid,.members-workspace-grid{grid-template-columns:1fr}.account-settings-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.member-organization-hero{grid-template-columns:minmax(0,1fr) minmax(180px,260px)}.member-organization-hero>.app-button{grid-column:1/-1;justify-self:start}.members-workspace-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.account-settings-tabs{top:calc(var(--dashboard-topbar-height,64px) + .25rem);margin-inline:-.25rem;border-radius:14px}.account-settings-tabs button{flex:0 0 auto}.account-settings-aside,.members-workspace-aside{grid-template-columns:1fr}.notification-preference-head,.notification-preference-row{grid-template-columns:minmax(180px,1fr) 52px 52px 52px;padding:.55rem}.notification-preference-row>span:first-child{grid-template-columns:34px minmax(0,1fr)}.notification-preference-row>span:first-child>i{width:34px;height:34px}.privacy-action-list article{grid-template-columns:42px minmax(0,1fr)}.privacy-action-list article>.app-button{grid-column:1/-1;width:100%}.member-organization-hero{grid-template-columns:1fr}.member-organization-hero>.app-button{grid-column:auto;width:100%}}
@media(max-width:560px){.account-avatar-editor,.organization-brand-editor{grid-template-columns:72px minmax(0,1fr);align-items:start;padding:.75rem}.account-avatar-preview,.organization-logo-preview{width:72px;height:72px;border-radius:18px;font-size:1.6rem}.account-avatar-editor .app-button{width:100%;margin:.3rem 0 0!important}.notification-preference-head{display:none}.notification-preference-row{grid-template-columns:minmax(0,1fr) repeat(3,42px);padding:.6rem .45rem}.notification-preference-row small{display:none}.account-definition-list>div{grid-template-columns:1fr}.account-definition-list dd{text-align:left}.account-payment-methods article{grid-template-columns:38px minmax(0,1fr)}.account-payment-methods article>.app-status{grid-column:2;justify-self:start}.member-organization-identity{grid-template-columns:50px minmax(0,1fr)}.member-organization-logo{width:50px;height:50px}.member-access-stats{grid-template-columns:1fr}.member-invitation-list article{grid-template-columns:34px minmax(0,1fr)}.member-invitation-list .app-status{grid-column:2;justify-self:start}}
@media(max-width:360px){.account-settings-tabs button{padding:.5rem .6rem}.account-settings-tabs button span{font-size:.6rem}.notification-preference-row{grid-template-columns:minmax(0,1fr) repeat(3,34px)}.notification-preference-row>span:first-child>i{display:none}.notification-preference-row>span:first-child{grid-template-columns:1fr}.account-avatar-editor,.organization-brand-editor{grid-template-columns:1fr}.account-avatar-preview,.organization-logo-preview{width:80px;height:80px}.member-organization-capacity>span{align-items:flex-start;flex-direction:column}}


/* Block 9 — Executive administration dashboard */
.app-button-ghost{color:var(--app-muted);border-color:transparent;background:transparent;box-shadow:none}.app-button-ghost:hover{color:var(--app-wine);background:rgba(116,21,29,.055)}
.executive-dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(260px,.78fr) minmax(520px,1.22fr);gap:1rem;align-items:end;margin-bottom:1rem;padding:clamp(1rem,2.4vw,1.45rem);overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:26px;color:#fff;background:radial-gradient(circle at 88% 12%,rgba(240,201,134,.18),transparent 32%),linear-gradient(145deg,#281026,#4f0e16 65%,#74151d);box-shadow:0 18px 45px rgba(40,16,38,.13)}
.executive-dashboard-hero::after{content:"";position:absolute;right:-100px;bottom:-160px;width:340px;height:340px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018);pointer-events:none}.executive-dashboard-heading,.executive-dashboard-filters{position:relative;z-index:1}.executive-dashboard-heading .auth-eyebrow{margin-bottom:.5rem}.executive-dashboard-heading h2{margin:0;font-family:"Fraunces",Georgia,serif;font-size:clamp(2rem,3.5vw,3.35rem);line-height:.98}.executive-dashboard-heading p{max-width:58ch;margin:.7rem 0 0;color:rgba(255,255,255,.7);font-size:.75rem;line-height:1.6}
.executive-dashboard-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;padding:.75rem;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.065);backdrop-filter:blur(10px)}.executive-dashboard-filters label{display:grid;gap:.35rem;min-width:0}.executive-dashboard-filters label>span{font-size:.58rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.62)}.executive-dashboard-filters select{min-width:0;width:100%;height:42px;padding:0 .7rem;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#fff;background:#35112f;outline:0;font-size:.68rem;font-weight:700}.executive-dashboard-filters select option{color:#281026;background:#fff}.executive-dashboard-filters .executive-compare-toggle{grid-column:span 2;display:flex;align-items:center}.executive-compare-toggle input{position:absolute;opacity:0;pointer-events:none}.executive-compare-toggle span{min-height:40px;display:flex;align-items:center;gap:.45rem;width:100%;padding:.55rem .7rem;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:rgba(255,255,255,.72);background:rgba(255,255,255,.04);cursor:pointer;text-transform:none;letter-spacing:0}.executive-compare-toggle input:checked+span{color:#fff;border-color:rgba(240,201,134,.45);background:rgba(240,201,134,.1)}.executive-dashboard-filters .app-button{align-self:end;color:#fff;border-color:rgba(255,255,255,.12)}
.executive-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.executive-kpi-card{position:relative;min-width:0;padding:1rem;border:1px solid var(--app-border);border-radius:20px;background:linear-gradient(145deg,#fff,rgba(251,245,236,.72));box-shadow:var(--app-shadow-card);overflow:hidden}.executive-kpi-card::after{content:"";position:absolute;right:-32px;top:-32px;width:88px;height:88px;border-radius:50%;background:rgba(116,21,29,.035)}.executive-kpi-top{position:relative;z-index:1;display:flex;align-items:center;gap:.55rem;color:var(--app-muted);font-size:.63rem;font-weight:800}.executive-kpi-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:var(--app-wine);background:rgba(116,21,29,.075);font-size:1rem}.executive-kpi-card>strong{position:relative;z-index:1;display:block;margin:.65rem 0 .18rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1}.executive-kpi-card>p{min-height:1.05rem;margin:0;color:var(--app-muted);font-size:.6rem}.executive-kpi-delta{display:inline-flex;align-items:center;gap:.25rem;margin-top:.6rem;padding:.25rem .42rem;border-radius:999px;font-size:.53rem;font-weight:800}.executive-kpi-delta.is-positive{color:#12694d;background:rgba(22,122,88,.09)}.executive-kpi-delta.is-negative{color:#9d3037;background:rgba(180,59,66,.09)}.executive-kpi-delta.is-neutral{color:var(--app-muted);background:rgba(40,16,38,.05)}
.executive-dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.executive-widget{min-width:0}.executive-widget-health,.executive-widget-finance,.executive-widget-clients{grid-column:span 7}.executive-widget-priorities,.executive-widget-capacity,.executive-widget-renewals,.executive-widget-support{grid-column:span 5}.executive-widget-activity{grid-column:1/-1}.executive-count-badge{display:grid;place-items:center;min-width:28px;height:28px;padding:0 .45rem;border-radius:999px;color:#fff;background:var(--app-wine);font-size:.65rem;font-weight:900}
.executive-health-layout{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:1.1rem}.executive-health-ring{--health-value:0;display:grid;place-items:center;width:138px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--app-success) calc(var(--health-value)*1%),rgba(40,16,38,.07) 0);position:relative}.executive-health-ring::after{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--app-paper)}.executive-health-ring>div{position:relative;z-index:1;text-align:center}.executive-health-ring strong,.executive-health-ring span{display:block}.executive-health-ring strong{font-family:"Fraunces",Georgia,serif;font-size:2rem}.executive-health-ring span{color:var(--app-muted);font-size:.62rem}.executive-health-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.executive-health-legend button{display:grid;grid-template-columns:10px 1fr;gap:.15rem .45rem;padding:.7rem;border:1px solid var(--app-border);border-radius:14px;text-align:left;background:#fff;cursor:pointer}.executive-health-legend button>span{grid-row:1/3;width:9px;height:9px;margin-top:.18rem;border-radius:50%}.executive-health-legend .is-success{background:var(--app-success)}.executive-health-legend .is-warning{background:var(--app-warning)}.executive-health-legend .is-danger{background:var(--app-danger)}.executive-health-legend strong{font-size:.85rem}.executive-health-legend small{color:var(--app-muted);font-size:.55rem}
.executive-project-list{display:grid;gap:.4rem;margin-top:1rem}.executive-project-list>button{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,130px) 38px auto;align-items:center;gap:.6rem;width:100%;padding:.65rem;border:0;border-top:1px solid rgba(40,16,38,.07);text-align:left;background:transparent;cursor:pointer}.executive-project-list strong,.executive-project-list small{display:block}.executive-project-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}.executive-project-list small{margin-top:.18rem;color:var(--app-muted);font-size:.55rem}.executive-project-list em{font-style:normal;font-size:.62rem;font-weight:800}.executive-project-progress{height:6px;overflow:hidden;border-radius:999px;background:rgba(40,16,38,.08)}.executive-project-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-wine),var(--app-gold))}
.executive-priority-list{display:grid;gap:.35rem}.executive-priority-list>button{display:grid;grid-template-columns:38px minmax(0,1fr) auto 18px;align-items:center;gap:.65rem;width:100%;padding:.65rem;border:1px solid transparent;border-radius:14px;text-align:left;background:transparent;cursor:pointer}.executive-priority-list>button:hover{border-color:var(--app-border);background:rgba(251,245,236,.7)}.executive-priority-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.executive-priority-list strong,.executive-priority-list small{display:block}.executive-priority-list strong{font-size:.67rem}.executive-priority-list small{margin-top:.15rem;color:var(--app-muted);font-size:.55rem}
.executive-finance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-bottom:.8rem}.executive-finance-summary>div{padding:.65rem;border:1px solid var(--app-border);border-radius:14px;background:rgba(251,245,236,.55)}.executive-finance-summary span,.executive-finance-summary strong{display:block}.executive-finance-summary span{color:var(--app-muted);font-size:.55rem}.executive-finance-summary strong{margin-top:.25rem;font-family:"Fraunces",Georgia,serif;font-size:1rem}.executive-revenue-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem;height:190px;padding-top:.5rem}.executive-revenue-month{display:grid;grid-template-rows:minmax(0,1fr) 18px;gap:.35rem;text-align:center}.executive-revenue-month>div{display:flex;align-items:flex-end;justify-content:center;gap:3px;min-height:0}.executive-revenue-month span{width:min(16px,38%);min-height:4px;border-radius:7px 7px 2px 2px}.executive-revenue-month .is-billed{background:var(--app-wine)}.executive-revenue-month .is-collected{background:var(--app-gold)}.executive-revenue-month small{color:var(--app-muted);font-size:.55rem}.executive-chart-legend{display:flex;justify-content:center;gap:1rem;margin-top:.45rem;color:var(--app-muted);font-size:.55rem}.executive-chart-legend span{display:flex;align-items:center;gap:.35rem}.executive-chart-legend i{width:9px;height:9px;border-radius:3px}.executive-chart-legend .is-billed{background:var(--app-wine)}.executive-chart-legend .is-collected{background:var(--app-gold)}
.executive-capacity-list{display:grid;gap:.55rem}.executive-capacity-list article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.65rem;align-items:center;padding:.55rem;border:1px solid var(--app-border);border-radius:14px}.executive-capacity-list article>div>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.executive-capacity-list strong{font-size:.67rem}.executive-capacity-list small{display:block;margin:.18rem 0 .38rem;color:var(--app-muted);font-size:.54rem}.executive-capacity-list article>div>div>span{font-size:.58rem;font-weight:900}.executive-capacity-list .is-danger{color:var(--app-danger)}.executive-capacity-list .is-warning{color:var(--app-warning)}.executive-capacity-list .is-success{color:var(--app-success)}.executive-capacity-bar{height:6px;overflow:hidden;border-radius:999px;background:rgba(40,16,38,.08)}.executive-capacity-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-success),var(--app-warning),var(--app-danger))}
.executive-client-health{display:grid;gap:.35rem}.executive-client-health>button{display:grid;grid-template-columns:54px minmax(0,1fr) 70px 70px 18px;gap:.65rem;align-items:center;width:100%;padding:.65rem;border:1px solid transparent;border-radius:14px;text-align:left;background:transparent;cursor:pointer}.executive-client-health>button:hover{border-color:var(--app-border);background:rgba(251,245,236,.65)}.executive-health-score{display:flex;align-items:baseline;justify-content:center;width:52px;height:52px;padding-top:14px;border-radius:15px}.executive-health-score.is-success{color:#12694d;background:rgba(22,122,88,.1)}.executive-health-score.is-warning{color:#8c5b08;background:rgba(167,107,9,.12)}.executive-health-score.is-danger{color:#9d3037;background:rgba(180,59,66,.1)}.executive-health-score strong{font-size:1rem}.executive-health-score small{font-size:.46rem}.executive-client-health button>span:nth-child(2) strong,.executive-client-health button>span:nth-child(2) small{display:block}.executive-client-health button>span:nth-child(2) strong{font-size:.68rem}.executive-client-health button>span:nth-child(2) small{margin-top:.18rem;color:var(--app-muted);font-size:.54rem}.executive-client-meta{text-align:center}.executive-client-meta b,.executive-client-meta small{display:block}.executive-client-meta b{font-size:.72rem}.executive-client-meta small{color:var(--app-muted);font-size:.48rem}
.executive-renewal-list{display:grid;gap:.55rem}.executive-renewal-list article{display:grid;grid-template-columns:48px minmax(0,1fr) auto 62px;gap:.65rem;align-items:center;padding:.55rem;border:1px solid var(--app-border);border-radius:14px}.executive-renewal-date{display:grid;place-items:center;width:46px;height:50px;border-radius:13px;color:#fff;background:var(--app-wine)}.executive-renewal-date strong,.executive-renewal-date small{display:block}.executive-renewal-date strong{font-family:"Fraunces",Georgia,serif;font-size:1.15rem;line-height:1}.executive-renewal-date small{font-size:.5rem;text-transform:uppercase}.executive-renewal-list article>div strong,.executive-renewal-list article>div small{display:block}.executive-renewal-list article>div strong{font-size:.66rem}.executive-renewal-list article>div small{margin-top:.18rem;color:var(--app-muted);font-size:.54rem}.executive-renewal-probability{text-align:right}.executive-renewal-probability strong,.executive-renewal-probability small{display:block}.executive-renewal-probability strong{font-size:.7rem}.executive-renewal-probability small{color:var(--app-muted);font-size:.48rem}
.executive-support-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:.7rem}.executive-support-summary>div{padding:.65rem;border:1px solid var(--app-border);border-radius:14px;text-align:center}.executive-support-summary strong,.executive-support-summary span{display:block}.executive-support-summary strong{font-family:"Fraunces",Georgia,serif;font-size:1.2rem}.executive-support-summary span{margin-top:.15rem;color:var(--app-muted);font-size:.5rem}.executive-support-list{display:grid;gap:.3rem}.executive-support-list>button{display:flex;align-items:center;justify-content:space-between;gap:.65rem;width:100%;padding:.6rem;border:0;border-top:1px solid rgba(40,16,38,.07);text-align:left;background:transparent;cursor:pointer}.executive-support-list strong,.executive-support-list small{display:block}.executive-support-list strong{font-size:.65rem}.executive-support-list small{margin-top:.18rem;color:var(--app-muted);font-size:.52rem}
@media (max-width:1180px){.executive-dashboard-hero{grid-template-columns:1fr}.executive-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-widget-health,.executive-widget-finance,.executive-widget-clients,.executive-widget-priorities,.executive-widget-capacity,.executive-widget-renewals,.executive-widget-support{grid-column:span 6}}
@media (max-width:820px){.executive-dashboard-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-dashboard-filters .executive-compare-toggle{grid-column:1/-1}.executive-widget-health,.executive-widget-finance,.executive-widget-clients,.executive-widget-priorities,.executive-widget-capacity,.executive-widget-renewals,.executive-widget-support{grid-column:1/-1}.executive-health-layout{grid-template-columns:130px minmax(0,1fr)}.executive-health-ring{width:122px}.executive-client-health>button{grid-template-columns:52px minmax(0,1fr) 62px 62px 16px}}
@media (max-width:600px){.executive-dashboard-hero{margin-inline:-.15rem;padding:1rem;border-radius:20px}.executive-dashboard-heading h2{font-size:2.25rem}.executive-dashboard-filters{grid-template-columns:1fr}.executive-dashboard-filters .executive-compare-toggle{grid-column:auto}.executive-dashboard-filters .app-button{width:100%}.executive-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.executive-kpi-card{padding:.8rem;border-radius:17px}.executive-kpi-card>strong{font-size:1.45rem}.executive-kpi-delta{font-size:.48rem}.executive-health-layout{grid-template-columns:1fr}.executive-health-ring{margin:auto}.executive-health-legend{grid-template-columns:repeat(3,minmax(0,1fr))}.executive-project-list>button{grid-template-columns:minmax(0,1fr) 38px auto}.executive-project-progress{display:none}.executive-finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-revenue-chart{gap:.28rem;height:160px}.executive-client-health>button{grid-template-columns:48px minmax(0,1fr) 18px}.executive-client-meta{display:none}.executive-renewal-list article{grid-template-columns:46px minmax(0,1fr) auto}.executive-renewal-probability{display:none}.executive-priority-list>button{grid-template-columns:36px minmax(0,1fr) 16px}.executive-priority-list .app-status{display:none}.executive-support-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:380px){.executive-kpi-grid{grid-template-columns:1fr}.executive-dashboard-heading h2{font-size:2rem}.executive-health-legend{grid-template-columns:1fr}.executive-support-summary{grid-template-columns:1fr}.executive-revenue-month span{width:9px}.executive-renewal-list article{grid-template-columns:42px minmax(0,1fr)}.executive-renewal-list .app-status{grid-column:2;justify-self:start}}

/* Block 10 — administrative client CRM */
.crm-page,.crm-detail-page{display:grid;gap:1rem}.crm-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(470px,.75fr);gap:1rem;align-items:center;padding:clamp(1.2rem,2.7vw,2rem);border:1px solid rgba(197,138,69,.28);border-radius:28px;color:#fff;background:linear-gradient(135deg,#281026 0%,#4b142f 62%,#74151d 100%);box-shadow:var(--app-shadow)}.crm-hero::after{content:"";position:absolute;right:-100px;bottom:-150px;width:340px;height:340px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 44px rgba(255,255,255,.025),0 0 0 88px rgba(255,255,255,.018)}.crm-hero-copy,.crm-hero-metrics{position:relative;z-index:1}.crm-hero h2{margin:.3rem 0 .45rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(2rem,4vw,3.25rem);line-height:1}.crm-hero p{max-width:700px;margin:0;color:rgba(255,255,255,.72);font-size:.74rem;line-height:1.65}.crm-hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.07);backdrop-filter:blur(14px)}.crm-hero-metrics article{padding:1rem}.crm-hero-metrics article+article{border-left:1px solid rgba(255,255,255,.12)}.crm-hero-metrics span,.crm-hero-metrics strong,.crm-hero-metrics small{display:block}.crm-hero-metrics span{color:rgba(255,255,255,.65);font-size:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.crm-hero-metrics strong{margin:.3rem 0 .15rem;font-family:"Fraunces",Georgia,serif;font-size:1.5rem}.crm-hero-metrics small{color:rgba(255,255,255,.66);font-size:.5rem;line-height:1.35}
.crm-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.75rem}.crm-saved-views{grid-column:1/-1;display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.1rem;scrollbar-width:none}.crm-saved-views::-webkit-scrollbar{display:none}.crm-saved-views button,.crm-stage-strip button{min-height:36px;padding:.45rem .65rem;border:1px solid transparent;border-radius:11px;color:var(--app-muted);background:rgba(40,16,38,.035);font-size:.56rem;font-weight:800;white-space:nowrap;cursor:pointer}.crm-saved-views button:hover,.crm-saved-views button.is-active{border-color:rgba(116,21,29,.12);color:var(--app-wine);background:rgba(116,21,29,.075)}.crm-filter-grid{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(4,minmax(115px,.65fr));gap:.55rem}.crm-filter-grid label{display:grid;gap:.25rem}.crm-filter-grid label>span{padding-left:.15rem;color:var(--app-muted);font-size:.47rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.crm-filter-grid input,.crm-filter-grid select{width:100%;min-height:40px;padding:.52rem .65rem;border:1px solid var(--app-border);border-radius:12px;color:var(--app-ink);background:#fff;font:inherit;font-size:.61rem}.crm-search{position:relative;display:flex!important;align-items:flex-end}.crm-search i{position:absolute;left:.7rem;bottom:.73rem;color:var(--app-muted)}.crm-search input{padding-left:2rem}.crm-toolbar-actions{display:flex;align-items:flex-end;gap:.4rem}.crm-stage-strip{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none}.crm-stage-strip::-webkit-scrollbar{display:none}.crm-stage-strip button{display:flex;align-items:center;gap:.55rem;background:#fff;border-color:var(--app-border)}.crm-stage-strip button strong{display:grid;place-items:center;min-width:22px;height:22px;padding:0 .3rem;border-radius:999px;color:#fff;background:var(--app-wine);font-size:.52rem}
.crm-client-table{padding:.85rem}.crm-table th{white-space:nowrap}.crm-table td{vertical-align:middle}.crm-client-cell{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:.6rem;width:100%;min-width:210px;padding:0;border:0;text-align:left;background:transparent;cursor:pointer}.crm-client-logo{display:grid;place-items:center;width:44px;height:44px;overflow:hidden;border:1px solid var(--app-border);border-radius:13px;color:var(--app-wine);background:#fff8ee;font-family:"Fraunces",Georgia,serif;font-size:1rem;font-weight:800}.crm-client-logo img{width:100%;height:100%;object-fit:contain;padding:.35rem}.crm-client-cell strong,.crm-client-cell small,.crm-table td>strong,.crm-table td>small{display:block}.crm-client-cell strong,.crm-table td>strong{font-size:.65rem}.crm-client-cell small,.crm-table td>small{margin-top:.18rem;color:var(--app-muted);font-size:.5rem;line-height:1.35}.crm-table-health{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:.25rem .4rem;min-width:110px}.crm-table-health>strong{font-family:"Fraunces",Georgia,serif;font-size:1.1rem}.crm-table-health>small{grid-column:1/-1;color:var(--app-muted);font-size:.48rem}.crm-manager{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.45rem;min-width:140px}.crm-manager .dashboard-avatar{width:34px;height:34px}.crm-manager strong,.crm-manager small{display:block}.crm-manager strong{font-size:.6rem}.crm-manager small{margin-top:.12rem;color:var(--app-muted);font-size:.49rem}.app-icon-action{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--app-border);border-radius:10px;color:var(--app-wine);background:#fff;cursor:pointer}.app-icon-action:hover{background:rgba(116,21,29,.06)}.crm-list-empty{padding:1rem}.crm-list-empty[hidden]{display:none}
.crm-detail-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:1rem 1.15rem;border:1px solid rgba(197,138,69,.28);border-radius:26px;color:#fff;background:linear-gradient(135deg,#281026 0%,#45142b 68%,#74151d 100%);box-shadow:var(--app-shadow)}.crm-detail-hero::after{content:"";position:absolute;right:-80px;bottom:-130px;width:300px;height:300px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.025)}.crm-back{position:relative;z-index:2;grid-column:1/-1;display:inline-flex;align-items:center;gap:.35rem;width:max-content;padding:.35rem 0;border:0;color:rgba(255,255,255,.72);background:transparent;font-size:.56rem;font-weight:800;cursor:pointer}.crm-detail-identity{position:relative;z-index:1;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:.8rem}.crm-detail-logo{display:grid;place-items:center;width:64px;height:64px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:18px;color:#fff;background:rgba(255,255,255,.1);font-family:"Fraunces",Georgia,serif;font-size:1.4rem}.crm-detail-logo img{width:100%;height:100%;padding:.4rem;object-fit:contain;background:#fff}.crm-detail-identity h2{margin:.15rem 0;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.8rem,3.3vw,2.75rem);line-height:1}.crm-detail-identity p{margin:.25rem 0 0;color:rgba(255,255,255,.64);font-size:.58rem}.crm-detail-health{position:relative;z-index:1;display:flex;align-items:center;gap:.6rem}.crm-detail-health>span{display:grid;gap:.25rem}.crm-detail-health small{color:rgba(255,255,255,.62);font-size:.5rem}.crm-health-gauge{--crm-gauge-color:#d0a15f;display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:conic-gradient(var(--crm-gauge-color) var(--crm-score),rgba(255,255,255,.12) 0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.crm-health-gauge::before{content:"";grid-area:1/1;width:62px;height:62px;border-radius:50%;background:#3b112c}.crm-health-gauge>div{position:relative;z-index:1;grid-area:1/1;display:flex;align-items:baseline}.crm-health-gauge strong{font-family:"Fraunces",Georgia,serif;font-size:1.35rem}.crm-health-gauge span{font-size:.45rem}.crm-health-gauge.is-success{--crm-gauge-color:#60c7a3}.crm-health-gauge.is-danger{--crm-gauge-color:#ff8686}.crm-detail-actions{position:relative;z-index:1;grid-column:1/-1;display:flex;gap:.45rem;flex-wrap:wrap}.crm-detail-actions .app-button-secondary{border-color:rgba(255,255,255,.16);color:#fff;background:rgba(255,255,255,.08)}.crm-detail-facts{position:relative;z-index:1;grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:17px;background:rgba(255,255,255,.055)}.crm-detail-facts>span{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:.45rem;padding:.65rem}.crm-detail-facts>span+span{border-left:1px solid rgba(255,255,255,.1)}.crm-detail-facts i{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.08)}.crm-detail-facts strong,.crm-detail-facts small{display:block}.crm-detail-facts strong{overflow:hidden;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.crm-detail-facts small{color:rgba(255,255,255,.55);font-size:.45rem}.crm-detail-tabs{display:flex;gap:.3rem;overflow-x:auto;padding:.35rem;border:1px solid var(--app-border);border-radius:17px;background:rgba(255,255,255,.78);box-shadow:var(--app-shadow-card);scrollbar-width:none}.crm-detail-tabs::-webkit-scrollbar{display:none}.crm-detail-tabs button{display:flex;align-items:center;gap:.38rem;min-height:38px;padding:.45rem .65rem;border:0;border-radius:11px;color:var(--app-muted);background:transparent;font-size:.56rem;font-weight:800;white-space:nowrap;cursor:pointer}.crm-detail-tabs button.is-active{color:#fff;background:var(--app-wine)}.crm-detail-content{min-width:0}.crm-danger-menu{display:flex;justify-content:flex-end;gap:.5rem;padding:.65rem;border-top:1px solid var(--app-border)}.crm-danger-menu button{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem;border:0;color:var(--app-muted);background:transparent;font-size:.52rem;font-weight:800;cursor:pointer}.crm-danger-menu button:last-child{color:var(--app-danger)}
.crm-detail-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.8rem}.crm-overview-main{grid-column:span 8}.crm-health-panel{grid-column:span 4}.crm-next-actions,.crm-project-summary,.crm-financial-summary,.crm-contacts-summary,.crm-activity-summary,.crm-support-summary{grid-column:span 6}.crm-account-brief>div:first-child{padding:.75rem;border-left:3px solid var(--app-gold);border-radius:0 12px 12px 0;background:rgba(197,138,69,.07)}.crm-account-brief>div:first-child span,.crm-account-brief>div:first-child strong{display:block}.crm-account-brief>div:first-child span{color:var(--app-muted);font-size:.48rem;font-weight:800;text-transform:uppercase}.crm-account-brief>div:first-child strong{margin-top:.28rem;font-size:.66rem;line-height:1.5}.crm-account-brief dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:.8rem 0 0}.crm-account-brief dl>div{padding:.6rem;border:1px solid var(--app-border);border-radius:12px}.crm-account-brief dt{color:var(--app-muted);font-size:.47rem;font-weight:800;text-transform:uppercase}.crm-account-brief dd{margin:.25rem 0 0;font-size:.59rem;font-weight:700;line-height:1.35}.crm-account-brief dd a{color:var(--app-wine)}.crm-overview-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.crm-health-layout{display:flex;align-items:center;gap:.85rem}.crm-health-panel .crm-health-gauge::before{background:#fff}.crm-health-panel .crm-health-gauge{color:var(--app-ink);background:conic-gradient(var(--crm-gauge-color) var(--crm-score),rgba(40,16,38,.08) 0)}.crm-health-layout>div:last-child{display:grid;gap:.3rem}.crm-health-layout>div:last-child>strong{font-family:"Fraunces",Georgia,serif;font-size:1.25rem}.crm-health-layout>div:last-child>span{color:var(--app-muted);font-size:.55rem}.crm-health-layout>div:last-child>small{font-size:.52rem}.crm-health-signals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:.8rem}.crm-health-signals span{padding:.5rem;border:1px solid var(--app-border);border-radius:11px;color:var(--app-muted);font-size:.48rem}.crm-health-signals strong{display:block;margin-top:.18rem;color:var(--app-ink);font-size:.58rem}.crm-risk-factors{display:grid;gap:.25rem;margin:.65rem 0 0;padding:0;list-style:none}.crm-risk-factors li{display:flex;gap:.35rem;padding:.4rem;border-radius:9px;color:#8f3438;background:rgba(180,59,66,.07);font-size:.51rem}.crm-followup-list,.crm-mini-projects,.crm-contact-mini-list,.crm-timeline{display:grid;gap:.35rem}.crm-followup-list article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--app-border);border-radius:12px}.crm-followup-list article>button{display:grid;place-items:center;width:28px;height:28px;border:0;color:var(--app-muted);background:transparent;cursor:pointer}.crm-followup-list strong,.crm-followup-list small{display:block}.crm-followup-list strong{font-size:.59rem}.crm-followup-list small{margin-top:.12rem;color:var(--app-muted);font-size:.48rem}.crm-progress-summary{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:.1rem .5rem;margin-bottom:.65rem}.crm-progress-summary>strong{grid-row:1/3;font-family:"Fraunces",Georgia,serif;font-size:2rem}.crm-progress-summary>span{color:var(--app-muted);font-size:.5rem}.crm-progress-summary>.app-progress{grid-column:2}.crm-mini-projects button{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:.45rem;width:100%;padding:.5rem;border:1px solid transparent;border-radius:11px;text-align:left;background:transparent;cursor:pointer}.crm-mini-projects button:hover{border-color:var(--app-border);background:rgba(251,245,236,.55)}.crm-mini-projects strong,.crm-mini-projects small{display:block}.crm-mini-projects strong{font-size:.58rem}.crm-mini-projects small{margin-top:.12rem;color:var(--app-muted);font-size:.47rem}.crm-finance-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.crm-finance-kpis>div{padding:.6rem;border:1px solid var(--app-border);border-radius:12px}.crm-finance-kpis span,.crm-finance-kpis strong{display:block}.crm-finance-kpis span{color:var(--app-muted);font-size:.48rem}.crm-finance-kpis strong{margin-top:.18rem;font-family:"Fraunces",Georgia,serif;font-size:1rem}.crm-finance-kpis .is-danger{color:var(--app-danger)}.crm-financial-summary>.app-card-link,.crm-activity-summary>.app-card-link{margin-top:.65rem}.crm-contact-mini-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.45rem;border-bottom:1px solid rgba(40,16,38,.07)}.crm-contact-mini-list strong,.crm-contact-mini-list small{display:block}.crm-contact-mini-list strong{font-size:.58rem}.crm-contact-mini-list small{margin-top:.12rem;color:var(--app-muted);font-size:.47rem}.crm-timeline article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:.5rem}.crm-timeline article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:var(--app-wine);background:rgba(116,21,29,.07)}.crm-timeline strong,.crm-timeline small{display:block}.crm-timeline strong{font-size:.57rem;line-height:1.35}.crm-timeline small{margin-top:.12rem;color:var(--app-muted);font-size:.46rem}.crm-support-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.crm-support-kpis span{padding:.55rem;border:1px solid var(--app-border);border-radius:12px;color:var(--app-muted);font-size:.47rem}.crm-support-kpis strong{display:block;margin-bottom:.15rem;color:var(--app-ink);font-size:.58rem}
.crm-section-card{padding:.9rem}.crm-contact-grid,.crm-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.crm-contact-grid>article,.crm-project-grid>article{padding:.75rem;border:1px solid var(--app-border);border-radius:16px;background:linear-gradient(145deg,#fff,#fffaf3)}.crm-contact-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.55rem}.crm-contact-head strong,.crm-contact-head small{display:block}.crm-contact-head strong{font-size:.64rem}.crm-contact-head small{margin-top:.12rem;color:var(--app-muted);font-size:.5rem}.crm-contact-grid dl,.crm-project-grid dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin:.65rem 0}.crm-contact-grid dl>div,.crm-project-grid dl>div{padding:.45rem;border-radius:10px;background:rgba(40,16,38,.035)}.crm-contact-grid dt,.crm-project-grid dt{color:var(--app-muted);font-size:.44rem;text-transform:uppercase}.crm-contact-grid dd,.crm-project-grid dd{margin:.16rem 0 0;font-size:.53rem;font-weight:700;overflow-wrap:anywhere}.crm-contact-grid footer{display:flex;gap:.5rem;border-top:1px solid var(--app-border);padding-top:.55rem}.crm-activity-layout,.crm-notes-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.65fr);gap:.8rem}.crm-full-timeline{position:relative;display:grid;gap:.65rem}.crm-full-timeline::before{content:"";position:absolute;left:18px;top:12px;bottom:12px;width:1px;background:var(--app-border)}.crm-full-timeline article{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:.65rem}.crm-timeline-icon{z-index:1;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--app-border);border-radius:11px;color:var(--app-wine);background:#fff}.crm-full-timeline article>div{padding:.65rem;border:1px solid var(--app-border);border-radius:13px;background:#fff}.crm-full-timeline header{display:flex;justify-content:space-between;gap:.6rem}.crm-full-timeline strong{font-size:.61rem}.crm-full-timeline time,.crm-full-timeline small{color:var(--app-muted);font-size:.47rem}.crm-full-timeline p{margin:.35rem 0;color:var(--app-muted);font-size:.55rem;line-height:1.5}.crm-log-activity{align-self:start;position:sticky;top:88px}.crm-project-grid>article header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.crm-project-grid h3{margin:.15rem 0;font-size:.69rem}.crm-project-grid header span:not(.app-status){color:var(--app-muted);font-size:.46rem}.crm-project-grid p{min-height:44px;color:var(--app-muted);font-size:.54rem;line-height:1.5}.crm-project-grid>.app-empty{grid-column:1/-1}.crm-finance-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.crm-finance-layout>.crm-finance-metrics,.crm-finance-layout>.app-card:last-child{grid-column:1/-1}.crm-finance-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.crm-commercial-list,.crm-contract-list,.crm-document-list{display:grid;gap:.4rem}.crm-commercial-list article{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem;border:1px solid var(--app-border);border-radius:12px}.crm-stage-dot{display:block;width:9px;height:36px;border-radius:999px;background:var(--app-gold)}.crm-stage-dot.is-qualified{background:#6f8bbf}.crm-stage-dot.is-proposal{background:#9d69a3}.crm-stage-dot.is-paused{background:#9a9a9a}.crm-commercial-list strong,.crm-commercial-list small{display:block}.crm-commercial-list strong{font-size:.59rem}.crm-commercial-list small{margin-top:.12rem;color:var(--app-muted);font-size:.47rem}.crm-commercial-list article>span:last-child{text-align:right}.crm-contract-list article,.crm-document-list article{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--app-border);border-radius:12px}.crm-contract-list article>i,.crm-document-list article>i{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:var(--app-wine);background:rgba(116,21,29,.07)}.crm-contract-list strong,.crm-contract-list small,.crm-document-list strong,.crm-document-list small{display:block}.crm-contract-list strong,.crm-document-list strong{font-size:.58rem}.crm-contract-list small,.crm-document-list small{margin-top:.12rem;color:var(--app-muted);font-size:.47rem}.crm-document-groups{display:grid;gap:1rem}.crm-document-groups h3{margin:0 0 .55rem;font-size:.65rem}.crm-ticket-list{display:grid;gap:.5rem}.crm-ticket-list article{display:grid;grid-template-columns:40px minmax(0,1fr) auto 34px;align-items:center;gap:.6rem;padding:.65rem;border:1px solid var(--app-border);border-radius:14px}.crm-ticket-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.crm-ticket-list strong,.crm-ticket-list small{display:block}.crm-ticket-list strong{font-size:.61rem}.crm-ticket-list small{margin-top:.12rem;color:var(--app-muted);font-size:.47rem}.crm-ticket-list p{margin:.3rem 0 0;color:var(--app-muted);font-size:.53rem}.crm-ticket-list article>div:nth-child(3){display:grid;gap:.2rem;justify-items:end}.crm-note-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.crm-note-list article{padding:.7rem;border:1px solid var(--app-border);border-radius:14px;background:#fff}.crm-note-list article.is-pinned{border-color:rgba(197,138,69,.35);background:#fffaf0}.crm-note-list header{display:flex;justify-content:space-between;gap:.5rem}.crm-note-list header span{display:flex;align-items:center;gap:.3rem;color:var(--app-wine);font-size:.48rem;font-weight:800;text-transform:uppercase}.crm-note-list header small,.crm-note-list footer{color:var(--app-muted);font-size:.45rem}.crm-note-list p{margin:.55rem 0;color:var(--app-ink);font-size:.56rem;line-height:1.55}.crm-opportunity-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:.65rem;overflow-x:auto;padding-bottom:.25rem}.crm-opportunity-board>section{min-width:220px;padding:.55rem;border:1px solid var(--app-border);border-radius:15px;background:rgba(40,16,38,.025)}.crm-opportunity-board>section>header{display:flex;align-items:center;justify-content:space-between;padding:.25rem .2rem .55rem}.crm-opportunity-board>section>header span{font-size:.51rem;font-weight:800;text-transform:uppercase}.crm-opportunity-board>section>header strong{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;color:#fff;background:var(--app-wine);font-size:.5rem}.crm-opportunity-board>section>div{display:grid;gap:.45rem}.crm-opportunity-board article{padding:.65rem;border:1px solid var(--app-border);border-radius:12px;background:#fff;box-shadow:var(--app-shadow-card)}.crm-opportunity-board h3{margin:0 0 .35rem;font-size:.61rem;line-height:1.35}.crm-opportunity-board article>strong{font-family:"Fraunces",Georgia,serif;font-size:1rem}.crm-probability{height:5px;margin:.5rem 0 .25rem;overflow:hidden;border-radius:999px;background:rgba(40,16,38,.07)}.crm-probability span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-wine),var(--app-gold))}.crm-opportunity-board small,.crm-opportunity-board time{display:block;color:var(--app-muted);font-size:.45rem}.crm-opportunity-board p{margin:.5rem 0 .2rem;color:var(--app-muted);font-size:.51rem;line-height:1.45}.crm-column-empty{padding:.7rem;color:var(--app-muted);font-size:.5rem;text-align:center}.crm-blocker-list{display:grid;gap:.35rem;padding-left:1rem;color:var(--app-danger);font-size:.58rem}.crm-duplicate-list{display:grid;gap:.5rem}.crm-duplicate-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .5rem;padding:.65rem;border:1px solid var(--app-border);border-radius:12px}.crm-duplicate-list strong{font-size:.61rem}.crm-duplicate-list span{font-size:.58rem;font-weight:800}.crm-duplicate-list small{color:var(--app-muted);font-size:.48rem}
@media (max-width:1260px){.crm-hero{grid-template-columns:1fr}.crm-filter-grid{grid-template-columns:minmax(230px,1.6fr) repeat(2,minmax(130px,.7fr))}.crm-filter-grid label:nth-child(4),.crm-filter-grid label:nth-child(5){grid-row:2}.crm-toolbar-actions{align-self:end}.crm-detail-grid>.app-card{grid-column:span 6}.crm-overview-main{grid-column:span 8!important}.crm-health-panel{grid-column:span 4!important}.crm-contact-grid,.crm-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.crm-toolbar{grid-template-columns:1fr}.crm-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-search{grid-column:1/-1}.crm-toolbar-actions{justify-content:flex-end}.crm-detail-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-detail-facts>span:nth-child(4){border-left:0}.crm-detail-facts>span:nth-child(n+4){border-top:1px solid rgba(255,255,255,.1)}.crm-overview-main,.crm-health-panel,.crm-detail-grid>.app-card{grid-column:1/-1!important}.crm-health-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.75fr);gap:.8rem}.crm-health-panel>.app-card-head{grid-column:1/-1}.crm-activity-layout,.crm-notes-layout{grid-template-columns:1fr}.crm-log-activity{position:static}.crm-finance-layout{grid-template-columns:1fr}.crm-finance-layout>*{grid-column:1!important}.crm-finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.crm-hero{padding:1rem;border-radius:21px}.crm-hero-metrics{grid-template-columns:1fr}.crm-hero-metrics article+article{border-top:1px solid rgba(255,255,255,.12);border-left:0}.crm-hero-metrics article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:.7rem}.crm-hero-metrics strong{grid-row:1/3;grid-column:2}.crm-toolbar{padding:.6rem}.crm-filter-grid{grid-template-columns:1fr}.crm-search{grid-column:auto}.crm-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.crm-toolbar-actions .app-button{width:100%}.crm-client-table{padding:.65rem}.crm-table tbody tr{padding:.75rem}.crm-table td[data-label="Cliente"]{padding-top:0}.crm-table td[data-label="Cliente"]::before,.crm-table td[data-label="Acciones"]::before{display:none}.crm-table td:last-child{position:absolute;right:.75rem;top:.95rem}.crm-client-cell{padding-right:45px}.crm-detail-hero{grid-template-columns:1fr;border-radius:21px}.crm-detail-health{justify-content:flex-start}.crm-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-detail-facts>span:nth-child(3),.crm-detail-facts>span:nth-child(5){border-left:0}.crm-detail-facts>span:nth-child(n+3){border-top:1px solid rgba(255,255,255,.1)}.crm-detail-actions .app-button{flex:1 1 calc(50% - .25rem)}.crm-detail-tabs{margin-inline:-.15rem}.crm-account-brief dl{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-health-panel{grid-template-columns:1fr}.crm-contact-grid,.crm-project-grid{grid-template-columns:1fr}.crm-finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-contact-grid dl,.crm-project-grid dl{grid-template-columns:1fr 1fr}.crm-note-list{grid-template-columns:1fr}.crm-ticket-list article{grid-template-columns:38px minmax(0,1fr) 32px}.crm-ticket-list article>div:nth-child(3){grid-column:2;justify-items:start}.crm-ticket-list article>button{grid-column:3;grid-row:1/3}.crm-danger-menu{flex-direction:column;align-items:flex-start}}
@media (max-width:520px){.crm-hero h2{font-size:2.25rem}.crm-saved-views{margin-inline:-.15rem}.crm-stage-strip{margin-inline:-.15rem}.crm-detail-identity{grid-template-columns:54px minmax(0,1fr)}.crm-detail-logo{width:54px;height:54px;border-radius:15px}.crm-detail-health .crm-health-gauge{width:66px;height:66px}.crm-detail-health .crm-health-gauge::before{width:52px;height:52px}.crm-detail-actions .app-button{flex:1 1 100%}.crm-detail-facts{grid-template-columns:1fr}.crm-detail-facts>span+span{border-top:1px solid rgba(255,255,255,.1);border-left:0}.crm-account-brief dl{grid-template-columns:1fr}.crm-overview-actions .app-button{width:100%}.crm-health-signals,.crm-support-kpis{grid-template-columns:1fr}.crm-followup-list article{grid-template-columns:28px minmax(0,1fr)}.crm-followup-list article>.app-status{grid-column:2;justify-self:start}.crm-finance-kpis{grid-template-columns:1fr 1fr}.crm-contact-grid dl,.crm-project-grid dl{grid-template-columns:1fr}.crm-finance-metrics{grid-template-columns:1fr}.crm-commercial-list article{grid-template-columns:8px minmax(0,1fr)}.crm-commercial-list article>span:last-child{grid-column:2;text-align:left}.crm-contract-list article,.crm-document-list article{grid-template-columns:34px minmax(0,1fr)}.crm-contract-list .app-status,.crm-document-list .app-status{grid-column:2;justify-self:start}.crm-full-timeline header{display:grid}.crm-full-timeline time{margin-top:.1rem}.crm-ticket-list article{grid-template-columns:34px minmax(0,1fr) 30px}}
@media (max-width:360px){.crm-toolbar-actions{grid-template-columns:1fr}.crm-detail-identity h2{font-size:1.75rem}.crm-finance-kpis{grid-template-columns:1fr}.crm-contact-head{grid-template-columns:38px minmax(0,1fr)}.crm-contact-head>.app-status{grid-column:2;justify-self:start}.crm-detail-tabs button{padding:.42rem .55rem}.crm-detail-tabs button i{display:none}}

/* Block 11 · Administrative project management */
.admin-project-portfolio,.admin-project-workspace{display:grid;gap:1rem;min-width:0}.admin-project-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.85fr);gap:1rem;padding:1.25rem;border-radius:26px;color:#fff;background:linear-gradient(135deg,#281026 0%,#58172d 62%,#8d4d32 100%);box-shadow:0 24px 70px rgba(40,16,38,.18)}.admin-project-hero h2{max-width:760px;margin:.35rem 0 .55rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.admin-project-hero p{max-width:770px;margin:0;color:rgba(255,255,255,.72);font-size:.76rem;line-height:1.6}.admin-project-hero-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:rgba(255,255,255,.075)}.admin-project-hero-metrics article{display:grid;align-content:center;gap:.2rem;min-height:100px;padding:1rem}.admin-project-hero-metrics article:nth-child(even){border-left:1px solid rgba(255,255,255,.12)}.admin-project-hero-metrics article:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}.admin-project-hero-metrics span{color:rgba(255,255,255,.63);font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.admin-project-hero-metrics strong{font-family:"Fraunces",Georgia,serif;font-size:2rem}.admin-project-toolbar{display:grid;grid-template-columns:minmax(250px,1.2fr) minmax(500px,2fr) auto;align-items:end;gap:.7rem;padding:.75rem;border:1px solid var(--app-border);border-radius:20px;background:rgba(255,255,255,.86);box-shadow:var(--app-shadow-card);backdrop-filter:blur(14px)}.admin-project-search{display:flex;align-items:center;gap:.55rem;min-height:46px;padding:0 .75rem;border:1px solid var(--app-border);border-radius:14px;background:#fff}.admin-project-search i{color:var(--app-wine)}.admin-project-search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.67rem}.admin-project-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.55rem}.admin-project-filter-grid label{display:grid;gap:.25rem}.admin-project-filter-grid label>span{padding-left:.2rem;color:var(--app-muted);font-size:.48rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.admin-project-filter-grid select{min-height:42px;padding:.55rem .65rem;border:1px solid var(--app-border);border-radius:12px;background:#fff;font:inherit;font-size:.58rem}.admin-project-view-toggle{display:flex;gap:.25rem;padding:.25rem;border:1px solid var(--app-border);border-radius:12px;background:#fff}.admin-project-view-toggle button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:9px;color:var(--app-muted);background:transparent;cursor:pointer}.admin-project-view-toggle button.is-active{color:#fff;background:var(--app-wine)}.admin-project-results-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;color:var(--app-muted);font-size:.6rem}.admin-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.admin-project-card{position:relative;display:grid;gap:.75rem;overflow:hidden;padding:1rem;border:1px solid var(--app-border);border-radius:21px;background:#fff;box-shadow:var(--app-shadow-card)}.admin-project-card-accent{position:absolute;inset:0 auto 0 0;width:4px;background:#7f9c71}.admin-project-card-accent.is-attention{background:#d49c45}.admin-project-card-accent.is-at_risk,.admin-project-card-accent.is-critical{background:#b23939}.admin-project-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;padding-left:.15rem}.admin-project-card header>div:first-child>span{color:var(--app-muted);font-size:.51rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.admin-project-card h3{margin:.25rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:1.32rem;line-height:1.08}.admin-project-card header>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}.admin-project-card>p{min-height:2.9em;margin:0;color:var(--app-muted);font-size:.61rem;line-height:1.5}.admin-project-card-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.admin-project-card-progress strong{font-size:.72rem}.admin-project-card-progress span{color:var(--app-muted);font-size:.51rem}.admin-project-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:0}.admin-project-card dl>div{padding:.55rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-card dt{color:var(--app-muted);font-size:.46rem;font-weight:800;text-transform:uppercase}.admin-project-card dd{margin:.18rem 0 0;font-size:.57rem;font-weight:700;line-height:1.35}.admin-project-card-counters{display:flex;flex-wrap:wrap;gap:.35rem}.admin-project-card-counters span{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .45rem;border-radius:999px;color:var(--app-muted);background:rgba(40,16,38,.045);font-size:.48rem;font-weight:700}.admin-project-card-counters span.is-danger{color:#a42f2f;background:#fff1f1}.admin-project-card-counters span.is-warning{color:#8a5b20;background:#fff7e8}.admin-project-card-signal{justify-self:start}.admin-project-card footer{display:flex;flex-wrap:wrap;gap:.45rem}.admin-project-table-progress{display:grid;gap:.25rem;min-width:110px}.admin-project-table-progress>span{font-size:.54rem;font-weight:800}.admin-project-table td small{display:block;margin-top:.18rem;color:var(--app-muted);font-size:.47rem}.admin-project-alert-count{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;color:var(--app-muted);background:rgba(40,16,38,.06);font-size:.55rem;font-weight:800}.admin-project-alert-count.is-active{color:#fff;background:#a42f2f}
.admin-project-workspace-hero{display:grid;gap:.9rem;padding:1.15rem;border-radius:26px;color:#fff;background:radial-gradient(circle at 92% 12%,rgba(197,138,69,.25),transparent 28%),linear-gradient(135deg,#281026,#63172d);box-shadow:0 24px 70px rgba(40,16,38,.2)}.admin-project-back{display:inline-flex;align-items:center;gap:.35rem;justify-self:start;padding:0;border:0;color:rgba(255,255,255,.7);background:transparent;font:inherit;font-size:.58rem;font-weight:800;cursor:pointer}.admin-project-back:hover{color:#fff}.admin-project-workspace-main{display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:end;gap:1rem}.admin-project-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.admin-project-kicker>span:not(.app-status){padding:.25rem .4rem;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:rgba(255,255,255,.68);font-size:.48rem;font-weight:800;text-transform:uppercase}.admin-project-workspace-hero h2{margin:.45rem 0 .45rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(2rem,4.5vw,3.7rem);line-height:.95}.admin-project-workspace-hero p{max-width:850px;margin:0;color:rgba(255,255,255,.72);font-size:.72rem;line-height:1.55}.admin-project-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.6rem}.admin-project-tags span{padding:.25rem .45rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:rgba(255,255,255,.7);font-size:.48rem}.admin-project-progress-ring{--progress:0;position:relative;display:grid;place-items:center;align-content:center;width:112px;height:112px;border-radius:50%;background:conic-gradient(#fff calc(var(--progress)*1%),rgba(255,255,255,.12) 0)}.admin-project-progress-ring::before{content:"";position:absolute;width:88px;height:88px;border-radius:50%;background:#4b1328}.admin-project-progress-ring strong,.admin-project-progress-ring span{position:relative;z-index:1}.admin-project-progress-ring strong{font-family:"Fraunces",Georgia,serif;font-size:1.8rem}.admin-project-progress-ring span{color:rgba(255,255,255,.62);font-size:.48rem}.admin-project-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.admin-project-hero-actions .app-button-primary{color:var(--app-wine);border-color:#fff;background:#fff}.admin-project-hero-actions .app-button-secondary{color:#fff;border-color:rgba(255,255,255,.19);background:rgba(255,255,255,.07)}.admin-project-health-chip{margin-left:auto}.admin-project-hero-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:17px;background:rgba(255,255,255,.06)}.admin-project-hero-facts span{display:grid;gap:.18rem;padding:.65rem}.admin-project-hero-facts span+span{border-left:1px solid rgba(255,255,255,.1)}.admin-project-hero-facts small{color:rgba(255,255,255,.55);font-size:.45rem;font-weight:800;text-transform:uppercase}.admin-project-hero-facts strong{font-size:.58rem}.admin-project-tabs{position:sticky;top:calc(var(--dashboard-topbar-height,72px) + .4rem);z-index:20;display:flex;gap:.25rem;overflow-x:auto;padding:.4rem;border:1px solid var(--app-border);border-radius:16px;background:rgba(255,253,249,.95);box-shadow:0 12px 28px rgba(40,16,38,.08);backdrop-filter:blur(15px);scrollbar-width:none}.admin-project-tabs::-webkit-scrollbar{display:none}.admin-project-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto;min-height:40px;padding:.5rem .65rem;border:0;border-radius:11px;color:var(--app-muted);background:transparent;font:inherit;font-size:.57rem;font-weight:800;cursor:pointer}.admin-project-tabs button.is-active{color:#fff;background:var(--app-wine)}.admin-project-tabs small{display:grid;place-items:center;min-width:18px;height:18px;padding:0 .2rem;border-radius:999px;color:inherit;background:rgba(116,21,29,.08);font-size:.43rem}.admin-project-tabs button.is-active small{background:rgba(255,255,255,.16)}.admin-project-view{display:grid;gap:.85rem;min-width:0}.admin-project-view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.admin-project-view-head span{color:var(--app-wine);font-size:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.admin-project-view-head h3{margin:.2rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:1.65rem}.admin-project-view-head p{margin:.25rem 0 0;color:var(--app-muted);font-size:.62rem}.admin-project-kpi-grid,.admin-project-work-kpis,.admin-project-budget-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.admin-project-overview-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem}.admin-project-overview-grid>.app-card{grid-column:span 6}.admin-project-next>div:last-child{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.65rem}.admin-project-next-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;background:var(--app-wine)}.admin-project-next>div:last-child>div>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.admin-project-next strong{font-size:.68rem}.admin-project-next p{margin:.25rem 0 .5rem;color:var(--app-muted);font-size:.56rem}.admin-project-signal-list{display:grid;gap:.45rem}.admin-project-signal-list article{display:flex;align-items:center;gap:.55rem;padding:.5rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-signal-list strong{font-size:.59rem}.admin-project-definition{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:0}.admin-project-definition>div{padding:.55rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-definition dt{color:var(--app-muted);font-size:.46rem;font-weight:800}.admin-project-definition dd{margin:.18rem 0 0;font-size:.57rem;font-weight:700}.admin-project-scope-list,.admin-project-team-mini{display:grid;gap:.4rem}.admin-project-scope-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.5rem;border:1px solid var(--app-border);border-radius:12px}.admin-project-scope-list article>i{color:var(--app-wine)}.admin-project-scope-list strong,.admin-project-scope-list small{display:block}.admin-project-scope-list strong{font-size:.58rem}.admin-project-scope-list small{margin-top:.12rem;color:var(--app-muted);font-size:.45rem}.admin-project-phase-summary>div:last-child{display:grid;gap:.45rem}.admin-project-phase-summary article{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:.5rem}.admin-project-phase-summary article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#fff;background:var(--app-wine);font-size:.52rem;font-weight:800}.admin-project-phase-summary strong,.admin-project-phase-summary small{display:block}.admin-project-phase-summary strong{font-size:.57rem}.admin-project-phase-summary small{color:var(--app-muted);font-size:.44rem}.admin-project-phase-summary .app-progress{margin-top:.3rem}.admin-project-team-mini{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-project-team-mini article{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:.5rem;padding:.5rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-team-mini strong,.admin-project-team-mini small{display:block}.admin-project-team-mini strong{font-size:.56rem}.admin-project-team-mini small{color:var(--app-muted);font-size:.44rem}.admin-project-planning-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:.75rem}.admin-project-phase-roadmap{grid-row:span 2}.admin-project-phase-roadmap>div:last-child{position:relative;display:grid;gap:.65rem}.admin-project-phase-roadmap>div:last-child::before{content:"";position:absolute;left:20px;top:22px;bottom:22px;width:1px;background:var(--app-border)}.admin-project-phase-roadmap article{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:.6rem}.admin-project-phase-number{position:relative;z-index:1;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--app-border);border-radius:13px;color:var(--app-wine);background:#fff;font-size:.58rem;font-weight:800}.admin-project-phase-roadmap article.is-complete .admin-project-phase-number{color:#fff;border-color:var(--app-wine);background:var(--app-wine)}.admin-project-phase-roadmap article>div{padding:.65rem;border:1px solid var(--app-border);border-radius:14px;background:#fff}.admin-project-phase-roadmap header{display:flex;align-items:flex-start;justify-content:space-between;gap:.55rem}.admin-project-phase-roadmap h4{margin:.15rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:1rem}.admin-project-phase-roadmap small,.admin-project-phase-roadmap footer{color:var(--app-muted);font-size:.45rem}.admin-project-phase-roadmap .app-progress{margin:.55rem 0}.admin-project-phase-roadmap footer{display:flex;justify-content:space-between}.admin-project-milestone-list{display:grid;gap:.45rem}.admin-project-milestone-list article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:.55rem;padding:.55rem;border-radius:13px;background:rgba(40,16,38,.035)}.admin-project-milestone-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--app-wine);background:#fff}.admin-project-milestone-list article>div>div{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.admin-project-milestone-list strong,.admin-project-milestone-list small{display:block}.admin-project-milestone-list strong{font-size:.57rem}.admin-project-milestone-list small{color:var(--app-muted);font-size:.44rem}.admin-project-milestone-list .app-progress{margin-top:.4rem}.admin-project-dependencies>div:last-child{display:grid;gap:.4rem}.admin-project-dependencies article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--app-border);border-radius:12px}.admin-project-dependencies article>div strong,.admin-project-dependencies article>div small{display:block}.admin-project-dependencies article>div strong{font-size:.54rem}.admin-project-dependencies article>div small{margin:.1rem 0;color:var(--app-muted);font-size:.42rem}.admin-project-task-board{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:.6rem;overflow-x:auto;padding-bottom:.3rem}.admin-project-task-board>section{min-width:210px;padding:.5rem;border:1px solid var(--app-border);border-radius:15px;background:rgba(40,16,38,.025)}.admin-project-task-board>section>header{display:flex;align-items:center;justify-content:space-between;padding:.25rem .2rem .55rem;font-size:.5rem;font-weight:800;text-transform:uppercase}.admin-project-task-board>section>header strong{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;color:#fff;background:var(--app-wine);font-size:.48rem}.admin-project-task-board>section>div{display:grid;gap:.4rem}.admin-project-task-board article{padding:.6rem;border:1px solid var(--app-border);border-radius:12px;background:#fff}.admin-project-task-board article>div{display:grid;grid-template-columns:6px minmax(0,1fr);align-items:start;gap:.4rem}.admin-project-priority{display:block;width:6px;height:22px;border-radius:999px;background:#8fa27e}.admin-project-priority.is-high{background:#d08a3f}.admin-project-priority.is-urgent{background:#b23939}.admin-project-task-board strong{font-size:.55rem;line-height:1.35}.admin-project-task-board p{margin:.4rem 0;color:var(--app-muted);font-size:.48rem;line-height:1.45}.admin-project-task-board footer{display:grid;gap:.15rem;color:var(--app-muted);font-size:.42rem}.admin-project-board-empty{padding:.65rem;color:var(--app-muted);font-size:.46rem;text-align:center}.admin-project-deliverable-grid,.admin-project-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.admin-project-deliverable-grid>article,.admin-project-team-grid>article{padding:.75rem;border:1px solid var(--app-border);border-radius:17px;background:#fff;box-shadow:var(--app-shadow-card)}.admin-project-deliverable-grid header{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:.55rem}.admin-project-deliverable-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--app-wine);background:rgba(116,21,29,.07)}.admin-project-deliverable-grid header span:not(.admin-project-deliverable-icon){color:var(--app-muted);font-size:.43rem;text-transform:uppercase}.admin-project-deliverable-grid h4{margin:.12rem 0 0;font-size:.62rem}.admin-project-deliverable-grid dl,.admin-project-team-grid dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin:.65rem 0}.admin-project-deliverable-grid dl>div,.admin-project-team-grid dl>div{padding:.45rem;border-radius:10px;background:rgba(40,16,38,.035)}.admin-project-deliverable-grid dt,.admin-project-team-grid dt{color:var(--app-muted);font-size:.42rem}.admin-project-deliverable-grid dd,.admin-project-team-grid dd{margin:.12rem 0 0;font-size:.5rem;font-weight:700}.admin-project-deliverable-grid footer{display:flex;align-items:center;justify-content:space-between;color:var(--app-muted);font-size:.45rem}.admin-project-member-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.55rem}.admin-project-member-head strong,.admin-project-member-head small{display:block}.admin-project-member-head strong{font-size:.6rem}.admin-project-member-head small{color:var(--app-muted);font-size:.45rem}.admin-project-allocation{margin-top:.65rem}.admin-project-allocation>div:first-child{display:flex;justify-content:space-between;margin-bottom:.3rem;font-size:.48rem}.admin-project-budget-layout,.admin-project-risk-layout,.admin-project-close-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.admin-project-budget-bars{display:grid;gap:1rem}.admin-project-budget-bars header{display:flex;justify-content:space-between;margin-bottom:.35rem;font-size:.56rem}.admin-project-budget-bars small{display:block;margin-top:.3rem;color:var(--app-muted);font-size:.45rem}.app-progress.is-danger span{background:#b23939}.admin-project-budget-events{display:grid;gap:.4rem}.admin-project-budget-events article{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-budget-events article>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:var(--app-wine);background:#fff}.admin-project-budget-events strong,.admin-project-budget-events small{display:block}.admin-project-budget-events strong{font-size:.54rem}.admin-project-budget-events small{color:var(--app-muted);font-size:.42rem}.admin-project-budget-events b{font-size:.55rem}.admin-project-risk-list,.admin-project-change-list{display:grid;gap:.55rem}.admin-project-risk-list article,.admin-project-change-list article{padding:.65rem;border:1px solid var(--app-border);border-radius:14px;background:#fff}.admin-project-risk-list article.is-critical{border-color:rgba(178,57,57,.32);background:#fff8f8}.admin-project-risk-list article.is-high{border-color:rgba(208,138,63,.3)}.admin-project-risk-list header,.admin-project-change-list header{display:flex;align-items:flex-start;justify-content:space-between;gap:.55rem}.admin-project-risk-list header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#a42f2f;background:#fff1f1}.admin-project-risk-list header>div{flex:1}.admin-project-risk-list strong,.admin-project-risk-list small,.admin-project-change-list strong,.admin-project-change-list small{display:block}.admin-project-risk-list strong,.admin-project-change-list strong{font-size:.58rem}.admin-project-risk-list small,.admin-project-change-list small{color:var(--app-muted);font-size:.43rem}.admin-project-risk-list p,.admin-project-change-list p{margin:.5rem 0;color:var(--app-muted);font-size:.51rem;line-height:1.5}.admin-project-risk-list footer{display:grid;gap:.18rem;color:var(--app-muted);font-size:.44rem}.admin-project-change-list dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.45rem 0}.admin-project-change-list dl>div{padding:.4rem;border-radius:9px;background:rgba(40,16,38,.035)}.admin-project-change-list dt{color:var(--app-muted);font-size:.4rem}.admin-project-change-list dd{margin:.1rem 0 0;font-size:.48rem;font-weight:700}.admin-project-change-list footer{display:flex;gap:.35rem}.admin-project-change-list blockquote{margin:.5rem 0 0;padding:.55rem;border-left:3px solid var(--app-gold);color:var(--app-muted);background:#fff9ec;font-size:.48rem}.admin-project-activity-timeline{position:relative;display:grid;gap:.55rem}.admin-project-activity-timeline::before{content:"";position:absolute;left:18px;top:20px;bottom:20px;width:1px;background:var(--app-border)}.admin-project-activity-timeline article{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:.6rem}.admin-project-activity-timeline article>span{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--app-border);border-radius:11px;color:var(--app-wine);background:#fff}.admin-project-activity-timeline article>div{padding:.55rem;border-radius:12px;background:rgba(40,16,38,.035)}.admin-project-activity-timeline strong,.admin-project-activity-timeline small{display:block}.admin-project-activity-timeline strong{font-size:.55rem}.admin-project-activity-timeline small{margin-top:.15rem;color:var(--app-muted);font-size:.42rem}.admin-project-close-progress{margin-bottom:.65rem}.admin-project-close-list{display:grid;gap:.4rem}.admin-project-close-list label{display:block}.admin-project-close-list input{position:absolute;opacity:0;pointer-events:none}.admin-project-close-list label>span{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;padding:.55rem;border:1px solid var(--app-border);border-radius:12px;background:#fff;cursor:pointer}.admin-project-close-list label.is-complete>span{border-color:rgba(84,136,84,.2);background:#f4fbf4}.admin-project-close-list label>span>i{grid-row:1/3;color:var(--app-wine);font-size:1rem}.admin-project-close-list strong,.admin-project-close-list small{display:block}.admin-project-close-list strong{font-size:.55rem}.admin-project-close-list small{color:var(--app-muted);font-size:.42rem}.admin-project-close-list input:disabled+span{cursor:default}.admin-project-close-summary{display:grid;align-content:start;justify-items:start}.admin-project-close-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:17px;color:#a42f2f;background:#fff1f1;font-size:1.45rem}.admin-project-close-icon.is-ready{color:#397139;background:#eef8ee}.admin-project-close-summary h3{margin:.65rem 0 .25rem;font-family:"Fraunces",Georgia,serif;font-size:1.35rem}.admin-project-close-summary p{margin:0;color:var(--app-muted);font-size:.57rem;line-height:1.5}.admin-project-close-summary ul{display:grid;gap:.25rem;padding-left:1rem;color:var(--app-muted);font-size:.48rem}.admin-project-close-summary>div{display:grid;width:100%;gap:.4rem;margin-top:.75rem}.admin-project-close-summary .app-button{width:100%}.admin-project-close-summary blockquote{margin:.75rem 0 0;padding:.6rem;border-left:3px solid var(--app-gold);background:#fff9ec;font-size:.5rem}.admin-project-dialog-head{margin-bottom:.3rem}.admin-project-dialog-head h2{margin:.25rem 0}.admin-project-form-section{display:grid;gap:.65rem;padding:.75rem;border:1px solid var(--app-border);border-radius:15px;background:rgba(40,16,38,.025)}.admin-project-form-section>span{color:var(--app-wine);font-size:.48rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.admin-project-checkboxes{display:flex;flex-wrap:wrap;gap:.6rem}.admin-project-checkboxes label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.35rem!important;font-size:.55rem!important}.admin-project-checkboxes input{width:17px!important;height:17px!important}.admin-project-change-impact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.admin-project-change-impact span{padding:.6rem;border-radius:12px;background:rgba(40,16,38,.04)}.admin-project-change-impact small,.admin-project-change-impact strong{display:block}.admin-project-change-impact small{color:var(--app-muted);font-size:.44rem}.admin-project-change-impact strong{margin-top:.15rem;font-size:.62rem}
@media (max-width:1280px){.admin-project-hero{grid-template-columns:1fr}.admin-project-toolbar{grid-template-columns:1fr auto}.admin-project-filter-grid{grid-row:2;grid-column:1/-1}.admin-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-project-overview-grid>.app-card{grid-column:span 6}.admin-project-deliverable-grid,.admin-project-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.admin-project-hero-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-project-hero-facts span:nth-child(4){border-left:0}.admin-project-hero-facts span:nth-child(n+4){border-top:1px solid rgba(255,255,255,.1)}.admin-project-kpi-grid,.admin-project-work-kpis,.admin-project-budget-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-project-overview-grid>.app-card{grid-column:1/-1}.admin-project-planning-grid{grid-template-columns:1fr}.admin-project-phase-roadmap{grid-row:auto}.admin-project-budget-layout,.admin-project-risk-layout,.admin-project-close-layout{grid-template-columns:1fr}.admin-project-team-mini{grid-template-columns:1fr}}
@media (max-width:760px){.admin-project-hero{padding:1rem;border-radius:21px}.admin-project-hero h2{font-size:2.25rem}.admin-project-hero-metrics{grid-template-columns:1fr}.admin-project-hero-metrics article{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:auto;padding:.7rem}.admin-project-hero-metrics article:nth-child(even){border-left:0}.admin-project-hero-metrics article+article{border-top:1px solid rgba(255,255,255,.12)}.admin-project-hero-metrics strong{grid-row:1/3;grid-column:2}.admin-project-toolbar{grid-template-columns:1fr auto;padding:.6rem}.admin-project-search{grid-column:1/-1}.admin-project-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-project-grid{grid-template-columns:1fr}.admin-project-card dl{grid-template-columns:1fr 1fr}.admin-project-workspace-hero{padding:1rem;border-radius:21px}.admin-project-workspace-main{grid-template-columns:1fr}.admin-project-progress-ring{width:92px;height:92px;justify-self:start}.admin-project-progress-ring::before{width:72px;height:72px}.admin-project-progress-ring strong{font-size:1.45rem}.admin-project-health-chip{margin-left:0}.admin-project-hero-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-project-hero-facts span:nth-child(3),.admin-project-hero-facts span:nth-child(5){border-left:0}.admin-project-hero-facts span:nth-child(n+3){border-top:1px solid rgba(255,255,255,.1)}.admin-project-tabs{top:calc(var(--dashboard-topbar-height,64px) + .25rem);margin-inline:-.15rem}.admin-project-view-head{align-items:flex-start;flex-direction:column}.admin-project-view-head .app-button{width:100%}.admin-project-deliverable-grid,.admin-project-team-grid{grid-template-columns:1fr}.admin-project-task-board{margin-inline:-.15rem}.admin-project-table-wrap .admin-project-table tbody tr{padding:.75rem}.admin-project-table-wrap .admin-project-table td[data-label="Proyecto"]::before,.admin-project-table-wrap .admin-project-table td[data-label="Acción"]::before{display:none}.admin-project-table-wrap .admin-project-table td:last-child{padding-top:.3rem}.admin-project-create-form .app-form-grid{grid-template-columns:1fr}.admin-project-checkboxes{display:grid}.admin-project-change-impact{grid-template-columns:1fr}}
@media (max-width:520px){.admin-project-filter-grid{grid-template-columns:1fr}.admin-project-view-toggle{grid-row:2;grid-column:2;align-self:end}.admin-project-results-head{align-items:flex-start;flex-direction:column}.admin-project-card header{display:grid}.admin-project-card header>div:last-child{justify-content:flex-start}.admin-project-card dl{grid-template-columns:1fr}.admin-project-card footer .app-button{width:100%}.admin-project-workspace-hero h2{font-size:2.15rem}.admin-project-hero-actions .app-button{width:100%}.admin-project-hero-facts{grid-template-columns:1fr}.admin-project-hero-facts span+span{border-top:1px solid rgba(255,255,255,.1);border-left:0}.admin-project-kpi-grid,.admin-project-work-kpis,.admin-project-budget-kpis{grid-template-columns:1fr}.admin-project-definition{grid-template-columns:1fr}.admin-project-phase-summary article{grid-template-columns:30px minmax(0,1fr)}.admin-project-phase-summary .app-status{grid-column:2;justify-self:start}.admin-project-scope-list article{grid-template-columns:auto minmax(0,1fr)}.admin-project-scope-list .app-status{grid-column:2;justify-self:start}.admin-project-deliverable-grid header{grid-template-columns:38px minmax(0,1fr)}.admin-project-deliverable-grid header>.app-status{grid-column:2;justify-self:start}.admin-project-deliverable-grid dl,.admin-project-team-grid dl{grid-template-columns:1fr}.admin-project-member-head{grid-template-columns:40px minmax(0,1fr)}.admin-project-member-head>.app-status{grid-column:2;justify-self:start}.admin-project-change-list dl{grid-template-columns:1fr 1fr}.admin-project-change-list footer{display:grid}.admin-project-change-list footer .app-button{width:100%}.admin-project-budget-events article{grid-template-columns:34px minmax(0,1fr)}.admin-project-budget-events b{grid-column:2}.admin-project-dependencies article{grid-template-columns:auto minmax(0,1fr)}.admin-project-dependencies article>.app-status:last-child{grid-column:2;justify-self:start}}
@media (max-width:360px){.admin-project-toolbar{grid-template-columns:1fr}.admin-project-view-toggle{grid-row:auto;grid-column:auto;justify-self:start}.admin-project-card-counters{display:grid;grid-template-columns:1fr 1fr}.admin-project-tabs button{padding:.45rem .52rem}.admin-project-tabs button i{display:none}.admin-project-change-list dl{grid-template-columns:1fr}}


/* Block 12 · Task management and workflow */
.task-center{display:grid;gap:.9rem}.task-center-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.8fr);gap:1rem;padding:1.15rem;border-radius:26px;color:#fff;background:linear-gradient(135deg,#281026 0%,#43153e 58%,#672b59 100%);box-shadow:0 18px 42px rgba(40,16,38,.15)}.task-center-hero::after{content:"";position:absolute;right:-80px;bottom:-130px;width:310px;height:310px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 44px rgba(255,255,255,.025),0 0 0 88px rgba(255,255,255,.02)}.task-center-hero>div{position:relative;z-index:1}.task-center-hero h2{max-width:760px;margin:.25rem 0 .35rem;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.65rem,3vw,2.75rem);line-height:1.02}.task-center-hero p{max-width:720px;margin:0;color:rgba(255,255,255,.72);font-size:.61rem;line-height:1.6}.task-center-hero .auth-eyebrow{color:#f2d184}.task-center-hero-stats{align-self:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.07);backdrop-filter:blur(12px)}.task-center-hero-stats article{position:relative;z-index:1;display:grid;align-content:center;gap:.15rem;padding:.8rem}.task-center-hero-stats article+article{border-left:1px solid rgba(255,255,255,.11)}.task-center-hero-stats span,.task-center-hero-stats small{color:rgba(255,255,255,.65);font-size:.43rem}.task-center-hero-stats strong{font-family:"Fraunces",Georgia,serif;font-size:1.75rem}.task-toolbar{display:grid;gap:.65rem;padding:.7rem;border:1px solid var(--app-border);border-radius:19px;background:#fff;box-shadow:0 10px 26px rgba(40,16,38,.05)}.task-toolbar-main{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:.55rem}.task-search{display:flex;align-items:center;gap:.45rem;padding:.55rem .65rem;border:1px solid var(--app-border);border-radius:13px;background:#fbfafb}.task-search:focus-within{border-color:var(--app-wine);box-shadow:0 0 0 3px rgba(40,16,38,.08)}.task-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.54rem}.task-view-switch{display:flex;gap:.2rem;padding:.2rem;border-radius:12px;background:rgba(40,16,38,.055)}.task-view-switch button{display:flex;align-items:center;gap:.3rem;min-height:36px;padding:.4rem .5rem;border:0;border-radius:9px;color:var(--app-muted);background:transparent;font:inherit;font-size:.47rem;font-weight:700;cursor:pointer}.task-view-switch button.is-active{color:var(--app-wine);background:#fff;box-shadow:0 4px 12px rgba(40,16,38,.09)}.task-filter-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:.45rem;align-items:end}.task-filter-row label{display:grid;gap:.2rem}.task-filter-row label>span{color:var(--app-muted);font-size:.4rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.task-filter-row select{width:100%;min-height:38px;padding:.42rem .5rem;border:1px solid var(--app-border);border-radius:10px;background:#fff;font:inherit;font-size:.48rem}.task-filter-reset{display:flex;align-items:center;justify-content:center;gap:.25rem;min-height:38px;padding:.4rem .55rem;border:1px solid var(--app-border);border-radius:10px;color:var(--app-muted);background:#fff;font:inherit;font-size:.45rem;font-weight:700;cursor:pointer}.task-bulk-bar{display:none;grid-template-columns:auto minmax(180px,260px) auto auto;align-items:end;gap:.5rem;padding:.6rem .7rem;border:1px solid rgba(143,201,200,.5);border-radius:15px;background:#f3fbfb}.task-bulk-bar.is-visible{display:grid}.task-bulk-bar>div{align-self:center;display:flex;align-items:baseline;gap:.3rem}.task-bulk-bar>div strong{font-family:"Fraunces",Georgia,serif;font-size:1.1rem}.task-bulk-bar>div span{color:var(--app-muted);font-size:.48rem}.task-bulk-bar label{display:grid;gap:.2rem}.task-bulk-bar label>span{font-size:.4rem;font-weight:700}.task-bulk-bar select{min-height:34px;border:1px solid var(--app-border);border-radius:9px;background:#fff;font:inherit;font-size:.46rem}.task-table-wrap{border-radius:18px}.task-table{min-width:1120px}.task-table th{white-space:nowrap}.task-table td{vertical-align:middle}.task-select-cell{width:38px}.task-select-cell input{width:17px;height:17px;accent-color:var(--app-wine)}.task-title-button{display:grid;gap:.12rem;max-width:340px;padding:0;border:0;text-align:left;background:transparent;font:inherit;cursor:pointer}.task-title-button strong{font-size:.55rem}.task-title-button small{overflow:hidden;display:-webkit-box;color:var(--app-muted);font-size:.43rem;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-title-button>span{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.15rem}.task-title-button em{padding:.12rem .28rem;border-radius:999px;color:var(--app-wine);background:rgba(40,16,38,.06);font-size:.36rem;font-style:normal;font-weight:700}.task-project-link{font-size:.48rem;font-weight:700}.task-assignees{display:flex;align-items:center;gap:.35rem}.task-assignees>small{max-width:120px;color:var(--app-muted);font-size:.4rem}.task-assignee-stack{display:flex;align-items:center}.task-assignee-stack>span,.task-assignee-stack>b{display:grid;place-items:center;width:27px;height:27px;margin-left:-6px;border:2px solid #fff;border-radius:50%;color:#fff;background:var(--app-wine);font-size:.38rem;font-weight:800}.task-assignee-stack>span:first-child{margin-left:0}.task-assignee-stack>b{color:var(--app-wine);background:#f0e7ef}.task-progress{display:grid;grid-template-columns:70px auto;align-items:center;gap:.3rem}.task-progress>span,.task-kanban-progress>span{overflow:hidden;height:6px;border-radius:999px;background:rgba(40,16,38,.08)}.task-progress>span i,.task-kanban-progress>span i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-wine),#8fc9c8)}.task-progress small{font-size:.4rem}.task-priority{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .35rem;border-radius:999px;font-size:.39rem;font-weight:800}.task-priority.is-urgent{color:#9c2626;background:#fff0f0}.task-priority.is-high{color:#9b5a16;background:#fff6e8}.task-priority.is-medium{color:#315f69;background:#effafa}.task-priority.is-low{color:#5d6270;background:#f2f3f5}.task-row-menu{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--app-border);border-radius:9px;color:var(--app-wine);background:#fff;cursor:pointer}.task-kanban{overflow-x:auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:.6rem;padding-bottom:.4rem;scroll-snap-type:x proximity}.task-kanban-column{min-height:520px;border:1px solid var(--app-border);border-radius:17px;background:#f8f7f8;scroll-snap-align:start;transition:.18s}.task-kanban-column.is-drag-over{border-color:#8fc9c8;background:#f0fbfb;box-shadow:inset 0 0 0 2px rgba(143,201,200,.35)}.task-kanban-column>header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .65rem;border-bottom:1px solid var(--app-border)}.task-kanban-column>header span{font-size:.48rem;font-weight:800}.task-kanban-column>header strong{display:grid;place-items:center;min-width:25px;height:25px;border-radius:8px;color:var(--app-wine);background:#fff;font-size:.43rem}.task-kanban-list{display:grid;align-content:start;gap:.45rem;padding:.5rem}.task-kanban-card{border:1px solid var(--app-border);border-radius:14px;background:#fff;box-shadow:0 7px 18px rgba(40,16,38,.045);transition:transform .18s,box-shadow .18s}.task-kanban-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(40,16,38,.09)}.task-kanban-card.is-dragging{opacity:.45}.task-kanban-card>button{display:grid;width:100%;gap:.45rem;padding:.6rem;border:0;text-align:left;background:transparent;font:inherit;cursor:pointer}.task-kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.task-kanban-card h3{margin:0;font-size:.58rem;line-height:1.35}.task-kanban-card p{overflow:hidden;margin:0;color:var(--app-muted);font-size:.44rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-dependency-note{display:flex;align-items:center;gap:.25rem;color:#8a5a22;font-size:.4rem}.task-kanban-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem}.task-kanban-progress small{font-size:.38rem}.task-kanban-card footer{display:flex;align-items:center;justify-content:space-between;color:var(--app-muted);font-size:.4rem}.task-kanban-card footer>span:last-child{display:flex;align-items:center;gap:.2rem}.task-kanban-empty{display:grid;place-items:center;min-height:90px;border:1px dashed var(--app-border);border-radius:12px;color:var(--app-muted);font-size:.42rem}.task-calendar{overflow:hidden;border:1px solid var(--app-border);border-radius:19px;background:#fff}.task-calendar>header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .8rem;border-bottom:1px solid var(--app-border)}.task-calendar>header span{color:var(--app-muted);font-size:.42rem}.task-calendar>header h3{margin:.1rem 0 0;font-family:"Fraunces",Georgia,serif;font-size:1.15rem;text-transform:capitalize}.task-calendar>header>div:last-child{display:flex;gap:.25rem}.task-calendar>header button{min-height:34px;padding:.35rem .5rem;border:1px solid var(--app-border);border-radius:9px;background:#fff;font:inherit;font-size:.44rem;cursor:pointer}.task-calendar-weekdays,.task-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr))}.task-calendar-weekdays{background:#f8f7f8}.task-calendar-weekdays span{padding:.4rem;border-right:1px solid var(--app-border);color:var(--app-muted);font-size:.4rem;font-weight:800;text-align:center}.task-calendar-grid>article,.task-calendar-grid>.is-empty{min-height:125px;padding:.35rem;border-top:1px solid var(--app-border);border-right:1px solid var(--app-border);background:#fff}.task-calendar-grid>.is-empty{background:#fbfafb}.task-calendar-grid>article.is-today{background:#f2fbfb;box-shadow:inset 0 0 0 2px rgba(143,201,200,.5)}.task-calendar-grid article>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.task-calendar-grid article>header span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;font-size:.42rem;font-weight:800}.task-calendar-grid article.is-today>header span{color:#fff;background:var(--app-wine)}.task-calendar-grid article>header strong{font-size:.38rem}.task-calendar-grid article>div{display:grid;gap:.2rem}.task-calendar-grid article button{display:grid;gap:.08rem;width:100%;padding:.25rem .3rem;border:0;border-left:3px solid #8fc9c8;border-radius:6px;text-align:left;background:#f1fafa;font:inherit;cursor:pointer}.task-calendar-grid article button.is-urgent{border-color:#c84b4b;background:#fff2f2}.task-calendar-grid article button.is-high{border-color:#d08a3f;background:#fff7eb}.task-calendar-grid article button span{overflow:hidden;font-size:.38rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.task-calendar-grid article button small,.task-calendar-more{overflow:hidden;color:var(--app-muted);font-size:.32rem;white-space:nowrap;text-overflow:ellipsis}.task-timeline{overflow-x:auto;border:1px solid var(--app-border);border-radius:19px;background:#fff}.task-timeline>header{display:flex;align-items:center;justify-content:space-between;min-width:900px;padding:.7rem .8rem;border-bottom:1px solid var(--app-border)}.task-timeline>header span,.task-timeline>header small{color:var(--app-muted);font-size:.42rem}.task-timeline>header h3{margin:.1rem 0 0;font-size:.66rem}.task-timeline-head{display:grid;grid-template-columns:270px minmax(600px,1fr);min-width:900px;background:#f8f7f8}.task-timeline-head>span{padding:.4rem .6rem;font-size:.4rem;font-weight:800}.task-timeline-head>div{display:flex;justify-content:space-between;padding:.4rem .6rem;border-left:1px solid var(--app-border)}.task-timeline-head small{font-size:.34rem}.task-timeline>section{min-width:900px}.task-timeline>section>h4{margin:0;padding:.4rem .6rem;border-top:1px solid var(--app-border);border-bottom:1px solid var(--app-border);color:var(--app-wine);background:#fbfafb;font-size:.44rem}.task-timeline article{display:grid;grid-template-columns:270px minmax(600px,1fr);min-height:52px;border-bottom:1px solid var(--app-border)}.task-timeline article>button{display:grid;align-content:center;gap:.1rem;padding:.35rem .6rem;border:0;text-align:left;background:#fff;font:inherit;cursor:pointer}.task-timeline article>button strong{overflow:hidden;font-size:.45rem;white-space:nowrap;text-overflow:ellipsis}.task-timeline article>button small{color:var(--app-muted);font-size:.34rem}.task-timeline-track{position:relative;border-left:1px solid var(--app-border);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(7.14% - 1px),rgba(40,16,38,.045) calc(7.14% - 1px),rgba(40,16,38,.045) 7.14%)}.task-timeline-track>span{position:absolute;left:var(--task-left);top:17px;width:var(--task-width);height:17px;border-radius:999px;background:#8fc9c8;box-shadow:0 4px 10px rgba(40,16,38,.12)}.task-timeline-track>span.is-blocked,.task-timeline-track>span.is-overdue{background:#c15a5a}.task-timeline-track>span.is-done{background:#77a36c}.task-timeline-track>span.is-client_review{background:#d7a854}.task-dialog-head h2{margin:.25rem 0}.task-editor-form select[multiple]{min-height:110px}.task-editor-form label>small{color:var(--app-muted);font-size:.4rem}.task-form-options{display:flex;flex-wrap:wrap;gap:.65rem;padding:.55rem;border-radius:12px;background:#f8f7f8}.task-form-options label,.task-inline-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.35rem!important;font-size:.48rem!important}.task-form-options input,.task-inline-check input{width:17px!important;height:17px!important}.task-detail{display:grid;gap:.75rem}.task-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.task-detail-head h2{max-width:720px;margin:.2rem 0;font-family:"Fraunces",Georgia,serif;font-size:1.55rem}.task-detail-head p{max-width:760px;margin:0;color:var(--app-muted);font-size:.54rem;line-height:1.55}.task-detail-head>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}.task-detail-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--app-border);border-radius:15px;background:#fbfafb}.task-detail-facts span{display:grid;gap:.12rem;padding:.55rem}.task-detail-facts span+span{border-left:1px solid var(--app-border)}.task-detail-facts small{color:var(--app-muted);font-size:.38rem;text-transform:uppercase;letter-spacing:.05em}.task-detail-facts strong{font-size:.49rem}.task-detail-facts strong.is-danger{color:#a42f2f}.task-detail-facts strong.is-warning{color:#9b5a16}.task-blocked-callout{display:flex;gap:.55rem;padding:.65rem;border:1px solid rgba(178,57,57,.25);border-radius:14px;color:#8f2f2f;background:#fff5f5}.task-blocked-callout>i{font-size:1.1rem}.task-blocked-callout strong{font-size:.52rem}.task-blocked-callout p{margin:.12rem 0 0;font-size:.45rem}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:.7rem}.task-detail-grid>div,.task-detail-grid>aside{display:grid;align-content:start;gap:.6rem}.task-detail-section{overflow:hidden;border:1px solid var(--app-border);border-radius:15px;background:#fff}.task-detail-section>header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .6rem;border-bottom:1px solid var(--app-border);background:#fbfafb}.task-detail-section>header h3{margin:0;font-size:.52rem}.task-detail-section>header span{font-size:.4rem;font-weight:800}.task-checklist{display:grid;padding:.4rem}.task-checklist label{display:block}.task-checklist input{position:absolute;opacity:0;pointer-events:none}.task-checklist label>span{display:flex;align-items:center;gap:.4rem;padding:.38rem .4rem;border-radius:9px;font-size:.46rem;cursor:pointer}.task-checklist label>span:hover{background:#f8f7f8}.task-checklist label.is-complete>span{color:var(--app-muted);text-decoration:line-through}.task-checklist i{color:var(--app-wine);font-size:.75rem}.task-dependency-list,.task-file-list{display:grid;padding:.4rem;gap:.3rem}.task-dependency-list button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.15rem .4rem;padding:.42rem;border:0;border-radius:10px;text-align:left;background:#f8f7f8;font:inherit;cursor:pointer}.task-dependency-list button>span{grid-row:1/3}.task-dependency-list strong{font-size:.45rem}.task-dependency-list small{color:var(--app-muted);font-size:.36rem}.task-file-list button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.42rem;border:1px solid var(--app-border);border-radius:10px;text-align:left;background:#fff;font:inherit;cursor:pointer}.task-file-list button>i:first-child{font-size:.9rem}.task-file-list strong,.task-file-list small{display:block}.task-file-list strong{font-size:.43rem}.task-file-list small{color:var(--app-muted);font-size:.34rem}.task-event-list{position:relative;display:grid;padding:.45rem}.task-event-list::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:1px;background:var(--app-border)}.task-event-list article{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:.35rem;padding:.28rem 0}.task-event-list article>span{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--app-border);border-radius:9px;color:var(--app-wine);background:#fff}.task-event-list strong,.task-event-list small{display:block}.task-event-list strong{font-size:.42rem}.task-event-list small{margin-top:.1rem;color:var(--app-muted);font-size:.34rem}.task-time-list{display:grid;padding:.4rem;gap:.3rem}.task-time-list article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.1rem .4rem;padding:.4rem;border-radius:10px;background:#f8f7f8}.task-time-list strong{grid-row:1/3;font-size:.53rem}.task-time-list span{font-size:.4rem}.task-time-list small{color:var(--app-muted);font-size:.33rem}.task-recurrence-card{display:flex;align-items:center;gap:.45rem;padding:.55rem;border:1px solid rgba(143,201,200,.45);border-radius:14px;background:#f1fbfb}.task-recurrence-card>i{font-size:1rem}.task-recurrence-card strong,.task-recurrence-card small{display:block}.task-recurrence-card strong{font-size:.46rem}.task-recurrence-card small{color:var(--app-muted);font-size:.36rem}.task-section-empty{margin:0;padding:.6rem;color:var(--app-muted);font-size:.42rem}.task-detail-actions{display:flex;justify-content:flex-end;gap:.4rem;padding-top:.1rem}
@media (max-width:1050px){.task-center-hero{grid-template-columns:1fr}.task-toolbar-main{grid-template-columns:1fr auto}.task-toolbar-main>.app-button{grid-column:2}.task-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.task-detail-grid{grid-template-columns:1fr}.task-calendar{overflow-x:auto}.task-calendar>header,.task-calendar-weekdays,.task-calendar-grid{min-width:820px}}
@media (max-width:760px){.task-center{gap:.65rem}.task-center-hero{padding:.9rem;border-radius:21px}.task-center-hero h2{font-size:2rem}.task-center-hero-stats{grid-template-columns:1fr}.task-center-hero-stats article{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:.6rem}.task-center-hero-stats article+article{border-left:0;border-top:1px solid rgba(255,255,255,.11)}.task-center-hero-stats strong{grid-column:2;grid-row:1/3}.task-toolbar{padding:.55rem}.task-toolbar-main{grid-template-columns:1fr}.task-toolbar-main>.app-button{grid-column:auto;width:100%}.task-view-switch{display:grid;grid-template-columns:repeat(4,1fr)}.task-view-switch button{justify-content:center}.task-view-switch button span{display:none}.task-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.task-filter-reset{grid-column:1/-1}.task-bulk-bar,.task-bulk-bar.is-visible{grid-template-columns:1fr 1fr;align-items:end}.task-bulk-bar>div{grid-column:1/-1}.task-table{min-width:0}.task-table-wrap .task-table tbody tr{padding:.7rem}.task-table-wrap .task-table td.task-select-cell{display:block;position:absolute;right:.55rem;top:.55rem;width:auto;padding:0}.task-table-wrap .task-table td[data-label="Tarea"]::before,.task-table-wrap .task-table td[data-label="Acción"]::before{display:none}.task-title-button{max-width:none;padding-right:1.8rem}.task-assignees>small{max-width:none}.task-progress{grid-template-columns:1fr auto}.task-row-menu{width:100%}.task-kanban{grid-auto-columns:minmax(82vw,1fr);margin-inline:-.1rem}.task-kanban-column{min-height:440px}.task-calendar>header,.task-calendar-weekdays,.task-calendar-grid{min-width:760px}.task-detail-head{display:grid}.task-detail-head>div:last-child{justify-content:flex-start}.task-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.task-detail-facts span:nth-child(3){border-left:0}.task-detail-facts span:nth-child(n+3){border-top:1px solid var(--app-border)}.task-detail-actions{display:grid}.task-detail-actions .app-button{width:100%}.task-form-options{display:grid}.task-timeline-head,.task-timeline>header,.task-timeline>section{min-width:760px}.task-timeline-head,.task-timeline article{grid-template-columns:220px minmax(540px,1fr)}}
@media (max-width:420px){.task-center-hero h2{font-size:1.72rem}.task-filter-row{grid-template-columns:1fr}.task-bulk-bar,.task-bulk-bar.is-visible{grid-template-columns:1fr}.task-bulk-bar>div{grid-column:auto}.task-view-switch button{min-height:42px}.task-detail-facts{grid-template-columns:1fr}.task-detail-facts span+span{border-left:0;border-top:1px solid var(--app-border)}}
.task-comment-list{display:grid;gap:.4rem;padding:.45rem}.task-comment-list article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:.4rem;padding:.45rem;border-radius:11px;background:#f8f7f8}.task-comment-list article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:#fff;background:var(--app-wine);font-size:.42rem;font-weight:800}.task-comment-list strong,.task-comment-list small{display:block}.task-comment-list strong{font-size:.43rem}.task-comment-list p{margin:.12rem 0;color:var(--app-ink);font-size:.41rem;line-height:1.5}.task-comment-list small{color:var(--app-muted);font-size:.33rem}.task-comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem;padding:.45rem;border-top:1px solid var(--app-border)}.task-comment-form textarea{min-height:70px;resize:vertical}.task-comment-form .app-button{align-self:end}@media(max-width:560px){.task-comment-form{grid-template-columns:1fr}.task-comment-form .app-button{width:100%}}

/* Block 13: administrative deliverables and version control */
.deliverable-portfolio,.deliverable-workspace{display:grid;gap:1.25rem}.deliverable-hero,.deliverable-workspace-hero{position:relative;overflow:hidden;border:1px solid var(--app-border);border-radius:28px;background:linear-gradient(135deg,rgba(40,16,38,.98),rgba(74,24,68,.96));color:#fff;box-shadow:var(--app-shadow);padding:clamp(1.35rem,3vw,2.35rem)}.deliverable-hero:after,.deliverable-workspace-hero:after{content:"";position:absolute;right:-9rem;bottom:-11rem;width:25rem;height:25rem;border-radius:50%;background:radial-gradient(circle,rgba(143,201,200,.22),transparent 68%);pointer-events:none}.deliverable-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);align-items:end;gap:2rem}.deliverable-hero h2,.deliverable-workspace-hero h2{max-width:760px;margin:.45rem 0 .65rem;font-family:var(--app-display);font-size:clamp(1.7rem,3.4vw,3rem);line-height:1.02}.deliverable-hero p,.deliverable-workspace-hero p{max-width:720px;margin:0;color:rgba(255,255,255,.73);line-height:1.7}.deliverable-hero-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.deliverable-hero-metrics article{display:grid;gap:.2rem;padding:1rem;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:rgba(255,255,255,.075);backdrop-filter:blur(8px)}.deliverable-hero-metrics article.is-alert{border-color:rgba(255,171,145,.55);background:rgba(151,44,40,.24)}.deliverable-hero-metrics span{font-size:.72rem;color:rgba(255,255,255,.66);text-transform:uppercase;letter-spacing:.08em}.deliverable-hero-metrics strong{font-size:1.65rem}.deliverable-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,2.2fr) auto;gap:1rem;align-items:end;padding:1rem;border:1px solid var(--app-border);border-radius:22px;background:var(--app-surface);box-shadow:var(--app-shadow-soft)}.deliverable-search{display:flex;align-items:center;gap:.65rem;min-height:46px;padding:0 .9rem;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-2)}.deliverable-search input{width:100%;border:0;background:transparent;outline:0;color:var(--app-text)}.deliverable-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:.7rem}.deliverable-filter-grid label{display:grid;gap:.35rem}.deliverable-filter-grid label>span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted)}.deliverable-filter-grid select{min-height:44px}.deliverable-layout-toggle{display:flex;gap:.35rem;padding:.25rem;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-2)}.deliverable-layout-toggle button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--app-muted);cursor:pointer}.deliverable-layout-toggle button.is-active{background:var(--app-primary);color:#fff}.deliverable-results-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--app-muted);font-size:.88rem}.deliverable-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.deliverable-card{display:grid;gap:1rem;min-width:0;padding:1.15rem;border:1px solid var(--app-border);border-radius:22px;background:var(--app-surface);box-shadow:var(--app-shadow-soft);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.deliverable-card:hover{transform:translateY(-2px);border-color:rgba(143,201,200,.65);box-shadow:var(--app-shadow)}.deliverable-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:start}.deliverable-card header>div{min-width:0}.deliverable-card header span:not(.app-status){display:block;color:var(--app-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.deliverable-card h3{margin:.18rem 0;font-size:1rem;line-height:1.35}.deliverable-card header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-muted)}.deliverable-card>p{margin:0;color:var(--app-muted);font-size:.88rem;line-height:1.65}.deliverable-type-icon,.deliverable-workspace-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:15px;background:rgba(143,201,200,.16);color:var(--app-primary);font-size:1.25rem}.deliverable-card-facts{display:flex;flex-wrap:wrap;gap:.5rem}.deliverable-card-facts>span:not(.app-status){display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .58rem;border-radius:10px;background:var(--app-surface-2);color:var(--app-muted);font-size:.72rem}.deliverable-card-review{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.deliverable-card-review>div{display:grid;gap:.15rem;padding:.65rem;border-radius:13px;background:var(--app-surface-2)}.deliverable-card-review span{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--app-muted)}.deliverable-card-review strong{font-size:.76rem}.deliverable-card>footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto}.deliverable-tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.deliverable-tag-list span{padding:.3rem .5rem;border-radius:999px;background:rgba(143,201,200,.13);color:var(--app-primary);font-size:.65rem;font-weight:700}.deliverable-table td:first-child strong,.deliverable-table td:first-child small{display:block}.deliverable-table td:first-child small{margin-top:.2rem;color:var(--app-muted)}
.deliverable-workspace-hero{display:grid;gap:1.25rem}.deliverable-back{display:inline-flex;align-items:center;gap:.45rem;width:max-content;border:0;background:transparent;color:rgba(255,255,255,.72);font-weight:700;cursor:pointer}.deliverable-workspace-main{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start}.deliverable-workspace-icon{width:58px;height:58px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.1);color:#fff;font-size:1.5rem}.deliverable-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.deliverable-kicker>span:not(.app-status){padding:.3rem .55rem;border-radius:999px;background:rgba(255,255,255,.09);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.deliverable-workspace-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.deliverable-workspace-actions .app-status{margin-left:auto}.deliverable-workspace-facts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.deliverable-workspace-facts>span{display:grid;gap:.22rem;padding:.75rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.06)}.deliverable-workspace-facts small{color:rgba(255,255,255,.58);font-size:.65rem;text-transform:uppercase;letter-spacing:.06em}.deliverable-workspace-facts strong{font-size:.82rem}.deliverable-workspace-tabs{display:flex;gap:.4rem;overflow:auto;padding:.35rem;border:1px solid var(--app-border);border-radius:17px;background:var(--app-surface)}.deliverable-workspace-tabs button{display:flex;align-items:center;gap:.45rem;flex:none;min-height:42px;padding:.55rem .8rem;border:0;border-radius:12px;background:transparent;color:var(--app-muted);font-weight:700;cursor:pointer}.deliverable-workspace-tabs button.is-active{background:var(--app-primary);color:#fff}.deliverable-workspace-tabs small{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:rgba(255,255,255,.15);font-size:.65rem}.deliverable-workspace-body,.deliverable-view{display:grid;gap:1rem}.deliverable-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.deliverable-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.deliverable-definition{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.deliverable-definition div{padding:.75rem;border-radius:13px;background:var(--app-surface-2)}.deliverable-definition dt{font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:var(--app-muted)}.deliverable-definition dd{margin:.25rem 0 0;font-weight:700}.deliverable-quality-list,.deliverable-revision-list{display:grid;gap:.55rem}.deliverable-quality-list article{display:flex;align-items:center;gap:.6rem;padding:.65rem .7rem;border:1px solid var(--app-border);border-radius:12px;color:var(--app-muted)}.deliverable-quality-list article.is-done{border-color:rgba(58,151,117,.28);background:rgba(58,151,117,.06);color:var(--app-text)}.deliverable-quality-list i{font-size:1.05rem}.deliverable-quality-list .is-done i{color:var(--app-success)}.deliverable-current-files,.deliverable-review-files,.deliverable-version-files{display:grid;align-content:start;gap:.55rem}.deliverable-current-files>button,.deliverable-review-files>button,.deliverable-version-files>button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;width:100%;padding:.72rem;border:1px solid var(--app-border);border-radius:13px;background:var(--app-surface-2);text-align:left;color:var(--app-text);cursor:pointer}.deliverable-current-files button span,.deliverable-review-files button span,.deliverable-version-files button span{display:grid;gap:.1rem;min-width:0}.deliverable-current-files button strong,.deliverable-review-files button strong,.deliverable-version-files button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deliverable-current-files button small,.deliverable-review-files button small,.deliverable-version-files button small{color:var(--app-muted)}.deliverable-revision-list article{padding:.8rem;border:1px solid rgba(184,98,66,.25);border-radius:14px;background:rgba(184,98,66,.06)}.deliverable-revision-list header{display:flex;justify-content:space-between;gap:.75rem}.deliverable-revision-list ul{padding-left:1.1rem;color:var(--app-muted);font-size:.82rem}.deliverable-view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.deliverable-view-head>div:first-child>span{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--app-primary)}.deliverable-view-head h3{margin:.25rem 0}.deliverable-view-head p{margin:0;color:var(--app-muted)}.deliverable-view-head>div:last-child{display:flex;flex-wrap:wrap;gap:.55rem}.deliverable-version-timeline{display:grid;gap:.25rem}.deliverable-version-item{display:grid;grid-template-columns:54px minmax(0,1fr);gap:.75rem}.deliverable-version-marker{position:relative;display:flex;justify-content:center}.deliverable-version-marker:after{content:"";position:absolute;top:46px;bottom:-12px;width:1px;background:var(--app-border)}.deliverable-version-item:last-child .deliverable-version-marker:after{display:none}.deliverable-version-marker span{position:relative;z-index:1;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface);color:var(--app-primary);font-size:.75rem;font-weight:800}.deliverable-version-item.is-locked .deliverable-version-marker span{background:var(--app-primary);color:#fff}.deliverable-version-card{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:var(--app-surface);box-shadow:var(--app-shadow-soft)}.deliverable-version-card>header,.deliverable-version-card>footer{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.deliverable-version-card header span:not(.app-status){font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:var(--app-muted)}.deliverable-version-card h4{margin:.15rem 0}.deliverable-version-card header small,.deliverable-version-card footer{color:var(--app-muted);font-size:.75rem}.deliverable-change-summary{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.deliverable-change-summary li{display:flex;gap:.45rem;color:var(--app-muted);font-size:.82rem}.deliverable-change-summary i{color:var(--app-success)}.deliverable-review-empty{display:grid;place-items:center;gap:.65rem;min-height:340px;padding:2rem;border:1px dashed var(--app-border);border-radius:24px;background:var(--app-surface);text-align:center}.deliverable-review-empty>i{font-size:2.3rem;color:var(--app-primary)}.deliverable-review-empty h3,.deliverable-review-empty p{max-width:560px;margin:0}.deliverable-review-empty p{color:var(--app-muted)}.deliverable-review-grid{display:grid;grid-template-columns:1.25fr 1fr .72fr;gap:1rem}.deliverable-approver-list{display:grid;gap:.55rem}.deliverable-approver-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.65rem;padding:.7rem;border:1px solid var(--app-border);border-radius:13px}.deliverable-approver-list article>div{display:grid;gap:.15rem}.deliverable-approver-list small{color:var(--app-muted)}.deliverable-approver-list p{grid-column:1/-1;margin:.25rem 0 0;color:var(--app-muted);font-size:.8rem}.deliverable-approval-rule{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.75rem}.deliverable-approval-rule span{display:grid;gap:.15rem;padding:.65rem;border-radius:12px;background:var(--app-surface-2)}.deliverable-approval-rule small{font-size:.62rem;text-transform:uppercase;color:var(--app-muted)}.deliverable-review-note{padding:.8rem;border-radius:13px;background:var(--app-surface-2);color:var(--app-muted);line-height:1.6}.deliverable-review-actions{display:flex;flex-direction:column;gap:.65rem}.deliverable-review-actions .app-card-head{margin-bottom:.35rem}.deliverable-review-actions>small{margin-top:auto;color:var(--app-muted)}.deliverable-activity-list{display:grid;gap:.6rem}.deliverable-activity-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.75rem;padding:.85rem;border:1px solid var(--app-border);border-radius:15px;background:var(--app-surface)}.deliverable-activity-list article>span:first-child{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--app-surface-2);color:var(--app-primary)}.deliverable-activity-list article>div{display:grid;gap:.2rem}.deliverable-activity-list small{color:var(--app-muted)}
.deliverable-form-version{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface-2)}.deliverable-approver-picker{display:grid;gap:.5rem;max-height:240px;overflow:auto}.deliverable-approver-picker>label{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.65rem;padding:.65rem;border:1px solid var(--app-border);border-radius:13px;background:var(--app-surface)}.deliverable-approver-picker>label>span:last-child{display:grid}.deliverable-approver-picker small{color:var(--app-muted)}.deliverable-approval-warning{display:flex;gap:.7rem;padding:.85rem;border:1px solid rgba(143,201,200,.35);border-radius:14px;background:rgba(143,201,200,.09)}.deliverable-approval-warning i{font-size:1.2rem;color:var(--app-primary)}.deliverable-approval-warning span{display:grid;gap:.15rem}.deliverable-approval-warning small{color:var(--app-muted)}.deliverable-compare{display:grid;gap:1rem}.deliverable-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.deliverable-compare-panel{display:grid;align-content:start;gap:.75rem;padding:1rem;border:1px solid var(--app-border);border-radius:18px;background:var(--app-surface-2)}.deliverable-compare-panel header{display:grid;grid-template-columns:1fr auto;align-items:start}.deliverable-compare-panel header span:first-child{grid-column:1/-1;font-size:.65rem;text-transform:uppercase;color:var(--app-muted)}.deliverable-compare-panel h3{margin:.2rem 0}.deliverable-compare-panel>p{color:var(--app-muted);line-height:1.6}.deliverable-compare-panel ul{margin:0;padding-left:1.15rem;color:var(--app-muted)}.deliverable-compare-panel>div{display:grid;gap:.35rem}.deliverable-compare-panel>div span{display:flex;gap:.35rem;align-items:center}.deliverable-compare-panel footer{padding-top:.65rem;border-top:1px solid var(--app-border);color:var(--app-muted);font-size:.75rem}
@media (max-width:1280px){.deliverable-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deliverable-toolbar{grid-template-columns:1fr auto}.deliverable-filter-grid{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));order:3}.deliverable-review-grid{grid-template-columns:1.25fr 1fr}.deliverable-review-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.deliverable-review-actions .app-card-head,.deliverable-review-actions>small{grid-column:1/-1}}
@media (max-width:960px){.deliverable-hero{grid-template-columns:1fr}.deliverable-workspace-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.deliverable-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deliverable-overview-grid,.deliverable-review-grid{grid-template-columns:1fr}.deliverable-review-actions{grid-column:auto}.deliverable-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.deliverable-view-head{align-items:flex-start;flex-direction:column}.deliverable-compare-grid{grid-template-columns:1fr}}
@media (max-width:720px){.deliverable-hero,.deliverable-workspace-hero{border-radius:22px;padding:1.1rem}.deliverable-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.deliverable-toolbar{grid-template-columns:1fr;padding:.8rem}.deliverable-layout-toggle{position:absolute;right:1rem}.deliverable-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));order:initial}.deliverable-filter-grid label:last-child{grid-column:1/-1}.deliverable-grid{grid-template-columns:1fr}.deliverable-workspace-main{grid-template-columns:1fr}.deliverable-workspace-icon{width:48px;height:48px}.deliverable-workspace-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.deliverable-workspace-actions .app-status{grid-column:1/-1;margin-left:0;width:max-content}.deliverable-workspace-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.deliverable-workspace-tabs{margin-inline:-.2rem}.deliverable-workspace-tabs button{padding:.55rem .7rem}.deliverable-overview-grid{grid-template-columns:1fr}.deliverable-definition{grid-template-columns:1fr}.deliverable-card-review{grid-template-columns:repeat(3,minmax(0,1fr))}.deliverable-version-item{grid-template-columns:42px minmax(0,1fr)}.deliverable-version-marker span{width:36px;height:36px}.deliverable-version-marker:after{top:40px}.deliverable-version-card>header,.deliverable-version-card>footer{flex-direction:column}.deliverable-review-actions{display:flex}.deliverable-approval-rule{grid-template-columns:1fr}.deliverable-compare-grid{grid-template-columns:1fr}.deliverable-form .app-form-grid{grid-template-columns:1fr}.deliverable-table thead{display:none}.deliverable-table,.deliverable-table tbody,.deliverable-table tr,.deliverable-table td{display:block;width:100%}.deliverable-table tr{margin-bottom:.75rem;padding:.7rem;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface)}.deliverable-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:.6rem;padding:.45rem 0;border:0}.deliverable-table td:before{content:attr(data-label);font-size:.65rem;font-weight:800;text-transform:uppercase;color:var(--app-muted)}}
@media (max-width:420px){.deliverable-hero-metrics{grid-template-columns:1fr 1fr}.deliverable-filter-grid{grid-template-columns:1fr}.deliverable-filter-grid label:last-child{grid-column:auto}.deliverable-workspace-actions{grid-template-columns:1fr}.deliverable-workspace-facts{grid-template-columns:1fr 1fr}.deliverable-kpi-grid{grid-template-columns:1fr 1fr}.deliverable-card>header{grid-template-columns:auto minmax(0,1fr)}.deliverable-card>header>.app-status{grid-column:1/-1;width:max-content}.deliverable-card-review{grid-template-columns:1fr}.deliverable-card>footer{align-items:flex-start;flex-direction:column}.deliverable-card>footer .app-button{width:100%}.deliverable-activity-list article{grid-template-columns:auto minmax(0,1fr)}.deliverable-activity-list article>.app-status{grid-column:2}.deliverable-workspace-tabs button span{display:none}}

/* Block 14 · File library --------------------------------------------------- */
.file-library-page{display:grid;gap:1rem;min-width:0}.file-library-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:1rem;align-items:stretch;padding:clamp(1.15rem,2vw,1.75rem);border:1px solid color-mix(in srgb,var(--app-border) 82%,transparent);border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--app-primary) 8%,var(--app-surface)) 0%,var(--app-surface) 62%,color-mix(in srgb,var(--app-accent) 8%,var(--app-surface)) 100%);overflow:hidden}.file-library-hero h2{max-width:760px;margin:.35rem 0 .55rem;font:750 clamp(1.45rem,2.5vw,2.25rem)/1.08 var(--app-display);letter-spacing:-.035em}.file-library-hero p{max-width:720px;margin:0;color:var(--app-muted);line-height:1.65}.file-storage-card{align-self:stretch;display:grid;align-content:center;gap:.8rem;padding:1rem 1.05rem;border:1px solid color-mix(in srgb,var(--app-primary) 14%,var(--app-border));border-radius:22px;background:color-mix(in srgb,var(--app-surface) 86%,white 14%);box-shadow:0 18px 50px rgb(40 16 38/.08)}.file-storage-card>div:first-child{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.file-storage-card span{font-size:.75rem;color:var(--app-muted)}.file-storage-card strong{font-size:1.05rem;text-align:right}.file-storage-card strong small{font-weight:600;color:var(--app-muted)}.file-storage-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--app-border) 76%,transparent);overflow:hidden}.file-storage-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--app-primary),var(--app-accent));transition:width .25s ease}.file-storage-card footer{display:flex;justify-content:space-between;gap:1rem}.file-library-toolbar,.file-filter-bar{display:flex;gap:.75rem;align-items:center;justify-content:space-between;padding:.8rem;border:1px solid var(--app-border);border-radius:20px;background:var(--app-surface)}.file-search{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1;max-width:620px;padding:0 .85rem;height:44px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-bg)}.file-search:focus-within{border-color:var(--app-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--app-primary) 12%,transparent)}.file-search i{font-size:1.1rem;color:var(--app-muted)}.file-search input{min-width:0;width:100%;border:0;background:transparent;color:var(--app-text);outline:0}.file-toolbar-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.file-view-toggle{display:flex;padding:3px;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg)}.file-view-toggle button{display:grid;place-items:center;width:36px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--app-muted);cursor:pointer}.file-view-toggle button.is-active{background:var(--app-surface);color:var(--app-primary);box-shadow:0 4px 15px rgb(40 16 38/.08)}.file-filter-bar{justify-content:flex-start;flex-wrap:wrap}.file-filter-bar label{display:grid;gap:.28rem;min-width:145px;color:var(--app-muted);font-size:.68rem;font-weight:700}.file-filter-bar select{height:38px;min-width:0;border:1px solid var(--app-border);border-radius:11px;background:var(--app-bg);color:var(--app-text);padding:0 2rem 0 .7rem}.file-filter-bar>button{align-self:flex-end;height:38px;border:0;background:transparent;color:var(--app-muted);font-weight:700;cursor:pointer}.file-library-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1rem;min-width:0}.file-folder-sidebar{align-self:start;position:sticky;top:calc(var(--dashboard-topbar-height,72px) + 1rem);max-height:calc(100vh - 105px);overflow:auto;padding:.65rem;border:1px solid var(--app-border);border-radius:22px;background:var(--app-surface)}.file-folder-head{display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem}.file-folder-head strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.file-folder-head small{font-size:.68rem;color:var(--app-muted)}.file-folder-sidebar ul{list-style:none;padding:0;margin:0}.file-folder-sidebar li{margin:2px 0}.file-folder-sidebar button{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:.55rem;width:100%;min-height:40px;padding:.5rem .65rem;border:0;border-radius:12px;background:transparent;color:var(--app-muted);text-align:left;cursor:pointer}.file-folder-sidebar button:hover{background:var(--app-bg);color:var(--app-text)}.file-folder-sidebar button.is-active{background:color-mix(in srgb,var(--app-primary) 9%,var(--app-bg));color:var(--app-primary);font-weight:800}.file-folder-sidebar button i{font-size:1.05rem}.file-folder-sidebar button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-folder-sidebar button small{font-size:.65rem;color:inherit;opacity:.76}.file-folder-tree button{padding-left:calc(.65rem + (var(--folder-depth,0) * .85rem))}.file-library-main{min-width:0;padding:1rem;border:1px solid var(--app-border);border-radius:22px;background:var(--app-surface)}.file-location-mobile{display:none}.file-location-head{display:grid;gap:.45rem;margin-bottom:1rem}.file-location-head>div:last-child{display:flex;align-items:end;justify-content:space-between;gap:1rem}.file-location-head h3{margin:0;font-size:1.15rem}.file-location-head span{font-size:.72rem;color:var(--app-muted)}.file-breadcrumbs{display:flex;align-items:center;gap:.25rem;min-width:0;overflow-x:auto;scrollbar-width:none}.file-breadcrumbs::-webkit-scrollbar{display:none}.file-breadcrumbs button{border:0;background:transparent;color:var(--app-muted);font-size:.7rem;white-space:nowrap;cursor:pointer}.file-breadcrumbs button[aria-current=page]{color:var(--app-text);font-weight:800}.file-breadcrumbs i{color:var(--app-border)}.file-child-folders{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.65rem;margin-bottom:1rem}.file-child-folders button{display:grid;grid-template-columns:36px minmax(0,1fr) 20px;align-items:center;gap:.7rem;min-width:0;padding:.75rem;border:1px solid var(--app-border);border-radius:15px;background:var(--app-bg);color:var(--app-text);text-align:left;cursor:pointer}.file-child-folders button:hover{border-color:color-mix(in srgb,var(--app-primary) 35%,var(--app-border));transform:translateY(-1px)}.file-child-folders button>i:first-child{font-size:1.45rem;color:var(--app-accent)}.file-child-folders span{min-width:0}.file-child-folders strong,.file-child-folders small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-child-folders small{margin-top:.18rem;color:var(--app-muted);font-size:.67rem}.file-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:.8rem}.file-library-card{position:relative;display:grid;grid-template-rows:auto 128px minmax(116px,1fr) auto;min-width:0;border:1px solid var(--app-border);border-radius:18px;background:var(--app-bg);overflow:hidden;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.file-library-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--app-primary) 28%,var(--app-border));box-shadow:0 18px 40px rgb(40 16 38/.08)}.file-library-card.is-selected{border-color:var(--app-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--app-primary) 15%,transparent)}.file-card-select{position:absolute;z-index:3;top:.55rem;left:.55rem;right:.55rem;display:flex;justify-content:space-between}.file-card-select label,.file-card-select button{display:grid;place-items:center;width:31px;height:31px;border:1px solid color-mix(in srgb,var(--app-border) 72%,transparent);border-radius:10px;background:color-mix(in srgb,var(--app-surface) 88%,transparent);backdrop-filter:blur(8px)}.file-card-select button{color:var(--app-muted);cursor:pointer}.file-card-select input{width:16px;height:16px;accent-color:var(--app-primary)}.file-card-preview{position:relative;display:grid;place-items:center;border:0;background:linear-gradient(145deg,color-mix(in srgb,var(--app-primary) 5%,var(--app-surface)),color-mix(in srgb,var(--app-accent) 8%,var(--app-bg)));cursor:pointer}.file-card-icon{display:grid;place-items:center;width:64px;height:74px;border-radius:15px;background:var(--app-surface);box-shadow:0 15px 35px rgb(40 16 38/.12);font-size:2rem;color:var(--app-primary)}.file-card-icon-documents{color:#b42318}.file-card-icon-images{color:#7a2e8e}.file-card-icon-design{color:#c45e24}.file-card-icon-archives{color:#9a6700}.file-card-icon-video{color:#175cd3}.file-card-icon-audio{color:#087a68}.file-card-shared{position:absolute;right:.6rem;bottom:.55rem;padding:.28rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--app-success,#177245) 12%,var(--app-surface));color:var(--app-success,#177245);font-size:.62rem;font-weight:800}.file-card-body{display:grid;align-content:start;gap:.28rem;padding:.8rem}.file-card-body>button{min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.file-card-body strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.file-card-body>span,.file-card-body>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-muted);font-size:.67rem}.file-card-tags,.file-detail-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.3rem}.file-card-tags span,.file-detail-tags span{padding:.23rem .42rem;border-radius:999px;background:color-mix(in srgb,var(--app-primary) 8%,var(--app-surface));color:var(--app-primary);font-size:.58rem;font-weight:800}.file-library-card footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-top:1px solid var(--app-border)}.file-library-card footer .app-status{max-width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-library-card footer>button,.file-list-actions button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-surface);color:var(--app-primary);cursor:pointer}.file-library-table{border:1px solid var(--app-border);border-radius:16px;overflow:auto}.file-library-table .app-table{min-width:960px}.file-list-name{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:.65rem;min-width:260px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.file-list-icon{display:grid;place-items:center;width:36px;height:40px;border-radius:10px;background:var(--app-bg);color:var(--app-primary);font-size:1.15rem}.file-list-name strong,.file-list-name small{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list-name small{margin-top:.2rem;color:var(--app-muted);font-size:.66rem}.file-list-actions{display:flex;gap:.35rem}.file-bulk-bar{position:fixed;z-index:25;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:.65rem;max-width:calc(100vw - 2rem);padding:.65rem .8rem;border:1px solid color-mix(in srgb,var(--app-primary) 24%,var(--app-border));border-radius:16px;background:color-mix(in srgb,var(--app-surface) 94%,transparent);box-shadow:0 18px 55px rgb(40 16 38/.2);backdrop-filter:blur(18px)}.file-bulk-bar>span{white-space:nowrap;font-size:.72rem}.file-bulk-bar select{height:36px;min-width:170px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-bg);color:var(--app-text);padding:0 .65rem}.file-bulk-bar>button:last-child{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:10px;background:var(--app-bg);color:var(--app-muted);cursor:pointer}.file-detail-page{display:grid;gap:1rem}.file-detail-hero{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:1.2rem;align-items:center;padding:1.2rem;border:1px solid var(--app-border);border-radius:24px;background:linear-gradient(145deg,var(--app-surface),color-mix(in srgb,var(--app-primary) 5%,var(--app-bg)))}.file-detail-preview{display:grid;place-items:center;align-content:center;gap:.45rem;min-height:150px;border-radius:20px;background:var(--app-bg);font-size:3.2rem;color:var(--app-primary);box-shadow:inset 0 0 0 1px var(--app-border)}.file-detail-preview span{font-size:.62rem;font-weight:900;letter-spacing:.1em}.file-detail-title{min-width:0}.file-detail-title h2{margin:.3rem 0 .5rem;font:750 clamp(1.4rem,2.5vw,2.2rem)/1.08 var(--app-display);word-break:break-word}.file-detail-title p{max-width:720px;color:var(--app-muted);line-height:1.6}.file-detail-title>div{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}.file-detail-actions{display:grid;gap:.45rem;min-width:165px}.file-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.file-meta-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:0}.file-meta-list>div{padding:.65rem;border-radius:12px;background:var(--app-bg)}.file-meta-list dt{font-size:.62rem;color:var(--app-muted)}.file-meta-list dd{margin:.24rem 0 0;font-size:.75rem;font-weight:800;word-break:break-word}.file-version-list,.file-share-list,.file-activity-list{display:grid;gap:.55rem}.file-version-list article{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:.7rem;align-items:start;padding:.7rem;border:1px solid var(--app-border);border-radius:13px}.file-version-list article.is-current{border-color:color-mix(in srgb,var(--app-success,#177245) 30%,var(--app-border));background:color-mix(in srgb,var(--app-success,#177245) 4%,var(--app-bg))}.file-version-number{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--app-bg);font-size:.7rem;font-weight:900}.file-version-list strong,.file-version-list small,.file-version-list p{display:block}.file-version-list small{margin-top:.18rem;color:var(--app-muted);font-size:.64rem}.file-version-list p{margin:.28rem 0 0;color:var(--app-muted);font-size:.68rem}.file-version-list button{border:0;background:transparent;color:var(--app-primary);font-size:.67rem;font-weight:800;cursor:pointer}.file-share-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:.6rem;align-items:center;padding:.65rem;border-radius:13px;background:var(--app-bg)}.file-share-list article>i{font-size:1.1rem;color:var(--app-primary)}.file-share-list strong,.file-share-list small{display:block}.file-share-list small{margin-top:.15rem;color:var(--app-muted);font-size:.64rem}.file-share-list article>button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:9px;background:var(--app-surface);color:var(--app-danger);cursor:pointer}.file-activity-list article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.65rem;align-items:start}.file-activity-list article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--app-bg);color:var(--app-primary)}.file-activity-list strong,.file-activity-list small{display:block}.file-activity-list strong{font-size:.73rem}.file-activity-list small{margin-top:.15rem;color:var(--app-muted);font-size:.63rem}.file-danger-zone{display:flex;align-items:center;gap:.6rem;padding:1rem;border:1px solid color-mix(in srgb,var(--app-danger) 22%,var(--app-border));border-radius:18px;background:color-mix(in srgb,var(--app-danger) 3%,var(--app-surface))}.file-danger-zone>div{margin-right:auto}.file-danger-zone strong{font-size:.8rem}.file-danger-zone p{margin:.25rem 0 0;color:var(--app-muted);font-size:.68rem}.file-upload-drop{position:relative;display:grid;place-items:center;gap:.3rem;padding:1.25rem;border:1.5px dashed color-mix(in srgb,var(--app-primary) 35%,var(--app-border));border-radius:16px;background:color-mix(in srgb,var(--app-primary) 3%,var(--app-bg));text-align:center}.file-upload-drop i{font-size:2rem;color:var(--app-primary)}.file-upload-drop span{font-size:.68rem;color:var(--app-muted)}.file-upload-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.app-back-link{display:inline-flex;align-items:center;gap:.4rem;width:max-content;border:0;background:transparent;color:var(--app-primary);font-size:.72rem;font-weight:800;cursor:pointer}
@media(max-width:1100px){.file-library-layout{grid-template-columns:220px minmax(0,1fr)}.file-library-grid{grid-template-columns:repeat(auto-fill,minmax(195px,1fr))}.file-detail-hero{grid-template-columns:120px minmax(0,1fr)}.file-detail-actions{grid-column:1/-1;display:flex;flex-wrap:wrap}.file-detail-preview{min-height:120px}.file-detail-grid{grid-template-columns:1fr}}
@media(max-width:900px){.file-library-hero{grid-template-columns:1fr}.file-library-layout{grid-template-columns:1fr}.file-folder-sidebar{display:none}.file-location-mobile{display:grid;gap:.3rem;margin-bottom:.9rem;color:var(--app-muted);font-size:.68rem;font-weight:800}.file-location-mobile select{height:42px;border:1px solid var(--app-border);border-radius:12px;background:var(--app-bg);color:var(--app-text);padding:0 .75rem}.file-library-toolbar{align-items:stretch;flex-direction:column}.file-search{max-width:none}.file-toolbar-actions{justify-content:space-between}.file-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.file-filter-bar label{min-width:0}.file-filter-bar>button{justify-self:start}.file-detail-hero{grid-template-columns:96px minmax(0,1fr);align-items:start}.file-detail-preview{min-height:96px;font-size:2.35rem}.file-detail-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.file-detail-actions .app-button{justify-content:center}.file-danger-zone{align-items:stretch;flex-wrap:wrap}.file-danger-zone>div{width:100%}}
@media(max-width:640px){.file-library-page{gap:.75rem}.file-library-hero,.file-library-main{border-radius:18px;padding:.85rem}.file-library-hero h2{font-size:1.4rem}.file-library-toolbar,.file-filter-bar{border-radius:16px}.file-toolbar-actions{display:grid;grid-template-columns:1fr 1fr auto;width:100%}.file-toolbar-actions .app-button{justify-content:center}.file-filter-bar{grid-template-columns:1fr 1fr;padding:.65rem}.file-filter-bar label:last-of-type{grid-column:1/-1}.file-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.file-library-card{grid-template-rows:auto 96px minmax(108px,1fr) auto;border-radius:15px}.file-card-icon{width:48px;height:56px;font-size:1.55rem}.file-card-body{padding:.65rem}.file-card-body strong{font-size:.72rem}.file-card-body>span,.file-card-body>small{font-size:.6rem}.file-library-card footer{padding:.5rem .6rem}.file-library-card footer .app-status{font-size:.56rem}.file-child-folders{grid-template-columns:1fr}.file-detail-hero{grid-template-columns:1fr;padding:.9rem}.file-detail-preview{min-height:110px}.file-detail-title h2{font-size:1.35rem}.file-detail-actions{grid-template-columns:1fr}.file-meta-list{grid-template-columns:1fr 1fr}.file-version-list article{grid-template-columns:40px minmax(0,1fr)}.file-version-list article>.app-status,.file-version-list article>button{grid-column:2}.file-share-list article{grid-template-columns:30px minmax(0,1fr) auto}.file-share-list article>.app-status{grid-column:2}.file-bulk-bar{left:.65rem;right:.65rem;bottom:calc(74px + env(safe-area-inset-bottom));transform:none;display:grid;grid-template-columns:1fr auto}.file-bulk-bar select{grid-column:1/-1;width:100%}.file-bulk-bar .app-button{justify-content:center}.file-bulk-bar>button:last-child{position:absolute;right:.45rem;top:.4rem}.file-danger-zone{display:grid}.file-danger-zone .app-button{justify-content:center}}
@media(max-width:390px){.file-library-grid{grid-template-columns:1fr}.file-filter-bar{grid-template-columns:1fr}.file-filter-bar label:last-of-type{grid-column:auto}.file-toolbar-actions{grid-template-columns:1fr 1fr}.file-view-toggle{grid-column:1/-1;justify-self:end}.file-meta-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.file-library-card,.file-storage-track span,.file-child-folders button{transition:none!important}}

/* =========================================================
   Block 15 · Communication center
   ========================================================= */
.communication-page { display: grid; gap: 1rem; min-width: 0; }
.communication-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) minmax(520px,.9fr); gap: 1.25rem; align-items: end; padding: clamp(1.25rem,2.6vw,2rem); color: #fff; border-radius: 26px; background: linear-gradient(135deg,#281026 0%,#4b183c 58%,#702c3a 100%); box-shadow: 0 22px 52px rgba(40,16,38,.18); }
.communication-hero::after { content:""; position:absolute; width:290px; height:290px; right:-100px; top:-150px; border-radius:50%; border:1px solid rgba(255,255,255,.13); box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 82px rgba(255,255,255,.025); pointer-events:none; }
.communication-hero > div { position:relative; z-index:1; min-width:0; }
.communication-hero h2 { margin:.25rem 0 .45rem; font-family:"Fraunces",serif; font-size:clamp(1.8rem,3vw,2.75rem); line-height:1.05; }
.communication-hero p { max-width:54ch; margin:0; color:rgba(255,255,255,.74); font-size:.86rem; line-height:1.65; }
.communication-hero .auth-eyebrow { color:#efd0a7; }
.communication-hero-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
.communication-hero-metrics article { min-width:0; padding:.82rem; border:1px solid rgba(255,255,255,.13); border-radius:16px; background:rgba(255,255,255,.075); backdrop-filter:blur(10px); }
.communication-hero-metrics span,.communication-hero-metrics small { display:block; color:rgba(255,255,255,.68); font-size:.64rem; }
.communication-hero-metrics strong { display:block; margin:.3rem 0; font-size:1.65rem; line-height:1; }
.communication-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) minmax(190px,260px) auto; gap:.8rem; align-items:end; padding:.85rem; overflow:visible; }
.communication-toolbar label { display:grid; gap:.3rem; color:var(--app-muted); font-size:.68rem; font-weight:700; }
.communication-toolbar select,.communication-search { min-height:46px; border:1px solid var(--app-border); border-radius:14px; background:#fff; }
.communication-toolbar select { width:100%; padding:.65rem .75rem; color:var(--app-text); font:inherit; }
.communication-search { display:flex!important; grid-template-columns:none!important; flex-direction:row; align-items:center; gap:.55rem; padding:0 .75rem; }
.communication-search i { color:var(--app-wine); font-size:1rem; }
.communication-search input { min-width:0; flex:1; border:0; outline:0; background:transparent; font:inherit; }
.communication-search kbd { padding:.2rem .38rem; color:var(--app-muted); border:1px solid var(--app-border); border-bottom-width:2px; border-radius:7px; background:#fbf8f3; font-size:.58rem; }
.communication-toolbar-actions { display:flex; justify-content:flex-end; gap:.45rem; flex-wrap:wrap; }
.communication-filters { display:flex; gap:.4rem; overflow-x:auto; padding:.1rem .05rem .3rem; scrollbar-width:none; }
.communication-filters::-webkit-scrollbar { display:none; }
.communication-filters button { min-height:40px; display:inline-flex; align-items:center; gap:.42rem; flex:0 0 auto; padding:.48rem .72rem; color:var(--app-muted); border:1px solid var(--app-border); border-radius:12px; background:#fff; font-size:.72rem; font-weight:750; cursor:pointer; }
.communication-filters button:hover,.communication-filters button.is-active { color:#fff; border-color:var(--app-wine); background:var(--app-wine); }
.communication-workspace { min-width:0; min-height:680px; display:grid; grid-template-columns:310px minmax(380px,1fr) 292px; overflow:hidden; border:1px solid var(--app-border); border-radius:24px; background:#fff; box-shadow:var(--app-shadow-card); }
.communication-page:not(.has-details) .communication-workspace { grid-template-columns:310px minmax(0,1fr); }
.communication-inbox { min-width:0; display:grid; grid-template-rows:auto minmax(0,1fr); border-right:1px solid var(--app-border); background:#fffdf9; }
.communication-inbox > header { min-height:66px; display:flex; align-items:center; padding:.9rem 1rem; border-bottom:1px solid var(--app-border); }
.communication-inbox > header div { display:flex; align-items:center; justify-content:space-between; width:100%; gap:.5rem; }
.communication-inbox > header strong { font-size:.85rem; }
.communication-inbox > header span { color:var(--app-muted); font-size:.67rem; }
.communication-conversation-list { min-height:0; overflow-y:auto; padding:.55rem; }
.communication-conversation { position:relative; width:100%; display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:.68rem; align-items:start; padding:.72rem; color:var(--app-text); border:1px solid transparent; border-radius:15px; text-align:left; background:transparent; cursor:pointer; transition:background .16s ease,border-color .16s ease,transform .16s ease; }
.communication-conversation + .communication-conversation { margin-top:.18rem; }
.communication-conversation:hover { background:#fff; border-color:rgba(116,21,29,.12); }
.communication-conversation.is-active { border-color:rgba(116,21,29,.18); background:linear-gradient(135deg,rgba(116,21,29,.09),rgba(197,138,69,.07)); }
.communication-conversation-icon,.communication-chat-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; color:var(--app-wine); border-radius:13px; background:rgba(116,21,29,.085); }
.communication-conversation-icon.is-internal,.communication-chat-icon.is-internal { color:#80550d; background:#fff1cc; }
.communication-conversation-copy { min-width:0; }
.communication-conversation-copy > span:first-child { display:flex; align-items:baseline; gap:.4rem; }
.communication-conversation-copy strong { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }
.communication-conversation-copy time { color:var(--app-muted); font-size:.55rem; white-space:nowrap; }
.communication-conversation-copy > small { display:block; margin-top:.12rem; overflow:hidden; color:var(--app-muted); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.communication-conversation-copy > p { display:-webkit-box; overflow:hidden; margin:.32rem 0 0; color:#736875; font-size:.67rem; line-height:1.35; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.communication-conversation-meta { display:flex!important; gap:.3rem!important; align-items:center!important; margin-top:.4rem; }
.communication-conversation-meta i { color:var(--app-gold); font-size:.7rem; }
.communication-conversation-meta em { padding:.15rem .32rem; color:#6a5968; border-radius:6px; background:#f2ece5; font-size:.52rem; font-style:normal; font-weight:750; }
.communication-conversation-meta em.is-pending { color:#8a5600; background:#fff0c8; }
.communication-conversation > b { min-width:21px; height:21px; display:grid; place-items:center; margin-top:.1rem; padding:0 .3rem; color:#fff; border-radius:999px; background:var(--app-wine); font-size:.58rem; }
.communication-chat { min-width:0; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:#faf7f2; }
.communication-chat-head { min-width:0; min-height:66px; display:flex; align-items:center; gap:.65rem; padding:.7rem .85rem; border-bottom:1px solid var(--app-border); background:rgba(255,255,255,.92); }
.communication-chat-head > div:not(.communication-chat-actions) { min-width:0; flex:1; }
.communication-chat-head > div > span,.communication-chat-head > div > small { display:block; overflow:hidden; color:var(--app-muted); font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }
.communication-chat-head > div > strong { display:block; overflow:hidden; margin:.1rem 0; font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
.communication-chat-actions { display:flex; gap:.25rem; }
.communication-chat-actions button,.communication-mobile-back { width:40px; height:40px; display:grid; place-items:center; color:var(--app-wine); border:1px solid var(--app-border); border-radius:12px; background:#fff; cursor:pointer; }
.communication-mobile-back { display:none; }
.communication-message-list { min-height:0; overflow-y:auto; padding:1rem clamp(.8rem,2vw,1.35rem); scroll-behavior:smooth; }
.communication-message { position:relative; display:grid; grid-template-columns:36px minmax(0,1fr); gap:.55rem; max-width:780px; margin:0 auto .8rem 0; }
.communication-message.is-own { grid-template-columns:minmax(0,1fr) 36px; margin-right:0; margin-left:auto; }
.communication-message.is-own .communication-message-avatar { grid-column:2; grid-row:1; }
.communication-message.is-own .communication-message-content { grid-column:1; grid-row:1; border-radius:18px 5px 18px 18px; background:#fff8f7; }
.communication-message.is-internal .communication-message-content { border-color:#e9c877; background:#fff8df; }
.communication-message.is-deleted .communication-message-content { opacity:.62; }
.communication-message.is-highlighted .communication-message-content { animation:communication-highlight 1.5s ease; }
@keyframes communication-highlight { 0%,100%{box-shadow:0 8px 24px rgba(40,16,38,.05)} 30%{box-shadow:0 0 0 5px rgba(197,138,69,.25),0 12px 32px rgba(40,16,38,.12)} }
.communication-message-avatar { width:36px; height:36px; font-size:.68rem; }
.communication-message-content { min-width:0; padding:.72rem .78rem; border:1px solid var(--app-border); border-radius:5px 18px 18px 18px; background:#fff; box-shadow:0 8px 24px rgba(40,16,38,.045); }
.communication-message-content > header { display:flex; align-items:flex-start; justify-content:space-between; gap:.7rem; margin-bottom:.42rem; }
.communication-message-content > header > span { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; min-width:0; }
.communication-message-content > header strong { font-size:.7rem; }
.communication-message-content > header em { display:inline-flex; align-items:center; gap:.18rem; padding:.16rem .34rem; color:#7a540f; border-radius:7px; background:#fff0c0; font-size:.52rem; font-style:normal; font-weight:750; }
.communication-message-content > header em.is-pending { color:#8e3a28; background:#ffe1d9; }
.communication-message-content > header time { color:var(--app-muted); font-size:.55rem; white-space:nowrap; }
.communication-message-content > p { margin:0; color:#463c47; font-size:.78rem; line-height:1.58; overflow-wrap:anywhere; }
.communication-message-content mark { padding:.05rem .18rem; color:var(--app-wine); border-radius:4px; background:rgba(197,138,69,.18); font-weight:750; }
.communication-reply-reference { width:100%; display:grid; gap:.12rem; margin-bottom:.5rem; padding:.45rem .55rem; text-align:left; border:0; border-left:3px solid var(--app-gold); border-radius:7px; background:#f7f1e9; cursor:pointer; }
.communication-reply-reference strong { color:var(--app-wine); font-size:.58rem; }
.communication-reply-reference span { overflow:hidden; color:var(--app-muted); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.communication-attachment { width:min(100%,400px); display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:.5rem; align-items:center; margin-top:.55rem; padding:.45rem; color:var(--app-text); text-align:left; border:1px solid var(--app-border); border-radius:11px; background:#fff; cursor:pointer; }
.communication-attachment > span:first-child { width:34px; height:34px; display:grid; place-items:center; color:var(--app-wine); border-radius:9px; background:rgba(116,21,29,.08); }
.communication-attachment strong,.communication-attachment small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.communication-attachment strong { font-size:.64rem; }
.communication-attachment small { margin-top:.1rem; color:var(--app-muted); font-size:.56rem; }
.communication-message-reactions { display:flex; flex-wrap:wrap; gap:.25rem; margin-top:.45rem; }
.communication-message-reactions button { min-height:28px; display:inline-flex; align-items:center; gap:.22rem; padding:.22rem .4rem; border:1px solid var(--app-border); border-radius:999px; background:#fff; cursor:pointer; }
.communication-message-reactions button.is-active { border-color:rgba(116,21,29,.28); background:rgba(116,21,29,.08); }
.communication-message-reactions strong { font-size:.55rem; }
.communication-message-content > footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.5rem; }
.communication-message-content > footer > span { color:var(--app-muted); font-size:.52rem; white-space:nowrap; }
.communication-message-actions { display:flex; flex-wrap:wrap; gap:.12rem; opacity:0; transition:opacity .15s ease; }
.communication-message:hover .communication-message-actions,.communication-message:focus-within .communication-message-actions { opacity:1; }
.communication-message-actions button { min-height:28px; display:inline-flex; align-items:center; gap:.18rem; padding:.22rem .32rem; color:var(--app-muted); border:0; border-radius:7px; background:transparent; font-size:.54rem; cursor:pointer; }
.communication-message-actions button:hover { color:var(--app-wine); background:rgba(116,21,29,.07); }
.communication-composer { padding:.7rem; border-top:1px solid var(--app-border); background:#fff; }
.communication-composer.is-internal { background:#fff8df; }
.communication-composer-context { display:grid; grid-template-columns:24px minmax(0,1fr) 30px; gap:.45rem; align-items:center; margin-bottom:.45rem; padding:.4rem .5rem; border-left:3px solid var(--app-gold); border-radius:8px; background:#f7f1e9; }
.communication-composer-context > i { color:var(--app-wine); }
.communication-composer-context strong,.communication-composer-context small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.communication-composer-context strong { font-size:.61rem; }
.communication-composer-context small { margin-top:.08rem; color:var(--app-muted); font-size:.56rem; }
.communication-composer-context button { width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:8px; background:transparent; cursor:pointer; }
.communication-composer-files { display:flex; gap:.3rem; overflow-x:auto; margin-bottom:.45rem; }
.communication-composer-files > span { display:inline-flex; align-items:center; gap:.3rem; flex:0 0 auto; padding:.3rem .42rem; border:1px solid var(--app-border); border-radius:8px; background:#fff; font-size:.57rem; }
.communication-composer-files button { border:0; background:transparent; cursor:pointer; }
.communication-composer-main { display:flex; gap:.5rem; align-items:flex-end; }
.communication-composer-main textarea { min-height:48px; max-height:150px; flex:1; resize:vertical; padding:.72rem .78rem; border:1px solid var(--app-border); border-radius:14px; outline:0; font:inherit; font-size:.76rem; line-height:1.5; }
.communication-composer-main textarea:focus { border-color:rgba(116,21,29,.45); box-shadow:0 0 0 4px rgba(116,21,29,.08); }
.communication-send { width:48px; height:48px; display:grid; place-items:center; flex:0 0 48px; color:#fff; border:0; border-radius:14px; background:var(--app-wine); font-size:1rem; cursor:pointer; }
.communication-composer > footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.35rem; }
.communication-composer > footer > div { display:flex; gap:.2rem; }
.communication-composer > footer button { min-height:32px; display:inline-flex; align-items:center; gap:.28rem; padding:.3rem .4rem; color:var(--app-muted); border:0; border-radius:8px; background:transparent; font-size:.58rem; cursor:pointer; }
.communication-composer > footer button:hover,.communication-composer > footer button.is-active { color:var(--app-wine); background:rgba(116,21,29,.07); }
.communication-composer > footer > span { color:var(--app-muted); font-size:.54rem; }
.communication-readonly { display:flex; align-items:center; gap:.65rem; padding:.75rem 1rem; border-top:1px solid var(--app-border); background:#fff; }
.communication-readonly > i { width:38px; height:38px; display:grid; place-items:center; color:var(--app-wine); border-radius:11px; background:rgba(116,21,29,.08); }
.communication-readonly strong,.communication-readonly small { display:block; }
.communication-readonly strong { font-size:.68rem; }
.communication-readonly small { margin-top:.12rem; color:var(--app-muted); font-size:.59rem; }
.communication-details { min-width:0; display:none; overflow-y:auto; border-left:1px solid var(--app-border); background:#fffdf9; }
.communication-details.is-open { display:block; }
.communication-details > header { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.75rem .85rem; border-bottom:1px solid var(--app-border); }
.communication-details > header span,.communication-details > header strong { display:block; }
.communication-details > header span { color:var(--app-muted); font-size:.58rem; }
.communication-details > header strong { max-width:190px; overflow:hidden; margin-top:.12rem; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.communication-details > header button { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--app-border); border-radius:10px; background:#fff; cursor:pointer; }
.communication-details > section { padding:.85rem; border-bottom:1px solid var(--app-border); }
.communication-details h3 { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin:0 0 .65rem; font-size:.68rem; }
.communication-details h3 span { color:var(--app-muted); font-size:.58rem; }
.communication-participants { display:grid; gap:.45rem; }
.communication-participants article { display:flex; align-items:center; gap:.5rem; }
.communication-participants .dashboard-avatar { width:34px; height:34px; flex:0 0 34px; font-size:.62rem; }
.communication-participants strong,.communication-participants small { display:block; }
.communication-participants strong { font-size:.63rem; }
.communication-participants small { margin-top:.08rem; color:var(--app-muted); font-size:.54rem; }
.communication-detail-actions { display:grid; gap:.3rem; }
.communication-detail-actions button { min-height:38px; display:flex; align-items:center; gap:.48rem; padding:.42rem .5rem; color:var(--app-text); text-align:left; border:1px solid var(--app-border); border-radius:10px; background:#fff; font-size:.61rem; cursor:pointer; }
.communication-detail-actions i { color:var(--app-wine); font-size:.85rem; }
.communication-pinned-item,.communication-file-mini { width:100%; display:grid; gap:.15rem; padding:.48rem; text-align:left; border:1px solid var(--app-border); border-radius:10px; background:#fff; cursor:pointer; }
.communication-pinned-item + .communication-pinned-item,.communication-file-mini + .communication-file-mini { margin-top:.3rem; }
.communication-pinned-item strong,.communication-pinned-item span,.communication-file-mini strong,.communication-file-mini small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.communication-pinned-item strong,.communication-file-mini strong { font-size:.59rem; }
.communication-pinned-item span,.communication-file-mini small { color:var(--app-muted); font-size:.53rem; }
.communication-file-mini { grid-template-columns:28px minmax(0,1fr); align-items:center; }
.communication-file-mini > i { color:var(--app-wine); }
.communication-detail-empty { margin:0; color:var(--app-muted); font-size:.59rem; line-height:1.5; }
.communication-escalation-section article { display:grid; grid-template-columns:30px minmax(0,1fr); gap:.4rem; align-items:center; padding:.5rem; border:1px solid #f0d39e; border-radius:10px; background:#fff8e9; }
.communication-escalation-section article + article { margin-top:.35rem; }
.communication-escalation-section article > i { width:30px; height:30px; display:grid; place-items:center; color:#9a5e00; border-radius:8px; background:#ffe6b5; }
.communication-escalation-section strong,.communication-escalation-section small { display:block; }
.communication-escalation-section strong { font-size:.58rem; }
.communication-escalation-section small { margin-top:.1rem; color:var(--app-muted); font-size:.51rem; }
.communication-escalation-section button { grid-column:2; justify-self:start; padding:.22rem .4rem; color:var(--app-wine); border:0; border-radius:7px; background:rgba(116,21,29,.08); font-size:.52rem; cursor:pointer; }
.communication-no-selection { min-height:600px; display:grid; place-items:center; }
.communication-participant-picker,.communication-attachment-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; max-height:320px; overflow-y:auto; }
.communication-participant-picker label,.communication-attachment-picker label { display:grid; grid-template-columns:auto 36px minmax(0,1fr); gap:.45rem; align-items:center; padding:.5rem; border:1px solid var(--app-border); border-radius:11px; cursor:pointer; }
.communication-participant-picker .dashboard-avatar { width:36px; height:36px; font-size:.62rem; }
.communication-participant-picker strong,.communication-participant-picker small,.communication-attachment-picker strong,.communication-attachment-picker small { display:block; }
.communication-participant-picker strong,.communication-attachment-picker strong { font-size:.63rem; }
.communication-participant-picker small,.communication-attachment-picker small { color:var(--app-muted); font-size:.55rem; }
.communication-attachment-picker label { grid-template-columns:auto 34px minmax(0,1fr); }
.communication-attachment-picker label > i { width:34px; height:34px; display:grid; place-items:center; color:var(--app-wine); border-radius:9px; background:rgba(116,21,29,.08); }

@media (max-width:1280px) {
  .communication-hero { grid-template-columns:minmax(0,1fr); }
  .communication-workspace { grid-template-columns:280px minmax(360px,1fr) 260px; }
  .communication-page:not(.has-details) .communication-workspace { grid-template-columns:280px minmax(0,1fr); }
  .communication-hero-metrics { max-width:760px; }
}
@media (max-width:1060px) {
  .communication-toolbar { grid-template-columns:minmax(240px,1fr) minmax(180px,240px); }
  .communication-toolbar-actions { grid-column:1/-1; justify-content:flex-start; }
  .communication-workspace,.communication-page:not(.has-details) .communication-workspace { grid-template-columns:270px minmax(0,1fr); }
  .communication-details { position:fixed; z-index:96; top:calc(64px + var(--app-safe-top)); right:0; bottom:0; width:min(330px,88vw); border-left:1px solid var(--app-border); box-shadow:-20px 0 50px rgba(40,16,38,.16); }
}
@media (max-width:760px) {
  .communication-hero { padding:1.2rem; border-radius:20px; }
  .communication-hero-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .communication-toolbar { grid-template-columns:1fr; }
  .communication-toolbar-actions { grid-column:auto; }
  .communication-toolbar-actions .app-button { flex:1 1 140px; }
  .communication-workspace,.communication-page:not(.has-details) .communication-workspace { min-height:calc(100dvh - 210px - var(--app-safe-bottom)); grid-template-columns:1fr; border-radius:18px; }
  .communication-inbox { border-right:0; }
  .communication-page:not(.is-mobile-chat) .communication-chat,.communication-page:not(.is-mobile-chat) .communication-details { display:none; }
  .communication-page.is-mobile-chat .communication-inbox { display:none; }
  .communication-page.is-mobile-chat .communication-chat { min-height:calc(100dvh - 210px - var(--app-safe-bottom)); }
  .communication-mobile-back { display:grid; }
  .communication-chat-head { position:sticky; top:0; z-index:3; }
  .communication-message-list { min-height:360px; max-height:calc(100dvh - 385px - var(--app-safe-bottom)); }
  .communication-message { max-width:96%; }
  .communication-message-actions { opacity:1; overflow-x:auto; flex-wrap:nowrap; padding-bottom:.15rem; }
  .communication-message-actions button { flex:0 0 auto; }
  .communication-message-content > footer { align-items:flex-start; flex-direction:column; }
  .communication-composer { padding-bottom:calc(.7rem + var(--app-safe-bottom)); }
  .communication-details.is-open { display:block; }
  .communication-participant-picker,.communication-attachment-picker { grid-template-columns:1fr; }
}
@media(max-width:390px) {
  .communication-page { gap:.75rem; }
  .communication-hero { padding:1rem; }
  .communication-hero p { font-size:.76rem; }
  .communication-hero-metrics { gap:.45rem; }
  .communication-hero-metrics article { padding:.65rem; }
  .communication-hero-metrics strong { font-size:1.35rem; }
  .communication-toolbar { padding:.65rem; }
  .communication-toolbar-actions .app-button { flex:1 1 100%; }
  .communication-conversation { padding:.62rem; }
  .communication-message { grid-template-columns:30px minmax(0,1fr); gap:.4rem; }
  .communication-message.is-own { grid-template-columns:minmax(0,1fr) 30px; }
  .communication-message-avatar { width:30px; height:30px; font-size:.58rem; }
  .communication-message-content { padding:.62rem; }
  .communication-message-content > p { font-size:.74rem; }
  .communication-composer > footer button span { display:none; }
  .communication-send { width:44px; height:44px; flex-basis:44px; }
}


/* Block 16 · Calendar and meetings */
.calendar-page{display:grid;gap:1rem}.calendar-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.calendar-toolbar{display:grid;gap:.8rem;padding:.9rem;border:1px solid var(--app-line);border-radius:var(--app-radius-lg);background:var(--app-surface);box-shadow:var(--app-shadow-sm)}.calendar-toolbar-main,.calendar-navigation,.calendar-view-switch,.calendar-filters{display:flex;align-items:center;gap:.55rem}.calendar-toolbar-main{justify-content:space-between}.calendar-navigation button,.calendar-view-switch button{min-height:38px;border:1px solid var(--app-line);border-radius:12px;background:var(--app-surface);color:var(--app-text);padding:.45rem .72rem;font-weight:700}.calendar-navigation strong{margin-left:.25rem;text-transform:capitalize;font-family:var(--app-heading);font-size:1.05rem}.calendar-view-switch{padding:.2rem;border-radius:14px;background:var(--app-soft)}.calendar-view-switch button{border:0;background:transparent}.calendar-view-switch button.is-active{background:var(--app-surface);box-shadow:0 3px 12px rgba(34,12,48,.1);color:var(--app-primary)}.calendar-filters{flex-wrap:wrap}.calendar-filters label{display:grid;gap:.25rem;min-width:150px}.calendar-filters label>span{font-size:.68rem;font-weight:800;color:var(--app-muted);text-transform:uppercase;letter-spacing:.06em}.calendar-filters select{min-height:40px;border:1px solid var(--app-line);border-radius:12px;background:var(--app-surface);padding:0 .7rem;color:var(--app-text)}.calendar-filters .calendar-mine-toggle{display:flex;align-items:center;gap:.45rem;min-width:auto;margin-left:auto}.calendar-filters .calendar-mine-toggle span{text-transform:none;letter-spacing:0;font-size:.78rem;color:var(--app-text)}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.calendar-layout>main{min-width:0}.calendar-side{display:grid;gap:1rem;position:sticky;top:88px}.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--app-line);border-radius:var(--app-radius-lg);overflow:hidden;background:var(--app-surface)}.calendar-day{min-height:145px;padding:.55rem;border-right:1px solid var(--app-line);border-bottom:1px solid var(--app-line);background:var(--app-surface)}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day.is-outside{background:color-mix(in srgb,var(--app-soft) 60%,var(--app-surface));opacity:.62}.calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--app-primary)}.calendar-day>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.45rem}.calendar-day>header span{display:none;font-size:.65rem;color:var(--app-muted);text-transform:capitalize}.calendar-day>header strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:.78rem}.calendar-day.is-today>header strong{background:var(--app-primary);color:#fff}.calendar-day>div{display:grid;gap:.28rem}.calendar-event{display:flex;align-items:flex-start;gap:.38rem;width:100%;min-width:0;border:1px solid transparent;border-radius:9px;padding:.36rem .4rem;text-align:left;background:var(--app-soft);color:var(--app-text);font-size:.7rem}.calendar-event:hover,.calendar-event:focus-visible{border-color:var(--app-primary);transform:translateY(-1px)}.calendar-event>i{margin-top:.08rem}.calendar-event>span{min-width:0;display:grid}.calendar-event strong{font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event small{font-size:.62rem;color:var(--app-muted)}.calendar-event-meeting{background:#f1e7f4;color:#5a245e}.calendar-event-milestone{background:#fff2d8;color:#7b5512}.calendar-event-task{background:#e6f2fb;color:#24567a}.calendar-event-deliverable{background:#eee9ff;color:#513c8c}.calendar-event-approval{background:#ffe8ec;color:#8a3340}.calendar-event-invoice{background:#e8f5ea;color:#32633b}.calendar-event-availability{background:#eceff3;color:#4c5967}.calendar-event.is-cancelled{text-decoration:line-through;opacity:.55}.calendar-more{border:0;background:transparent;color:var(--app-primary);font-size:.68rem;font-weight:800;text-align:left;padding:.15rem}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:.55rem;overflow-x:auto;padding-bottom:.4rem}.calendar-week-day{min-height:520px;border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);padding:.55rem}.calendar-week-day.is-today{border-color:var(--app-primary);box-shadow:inset 0 3px 0 var(--app-primary)}.calendar-week-day>header{display:flex;align-items:center;gap:.35rem;padding:.35rem}.calendar-week-day>header span{text-transform:capitalize;color:var(--app-muted);font-size:.72rem}.calendar-week-day>header strong{font-size:1.1rem}.calendar-week-day>header small{margin-left:auto}.calendar-week-day>div{display:grid;gap:.4rem}.calendar-week-day>div>p{font-size:.72rem;color:var(--app-muted);text-align:center;margin-top:1rem}.calendar-agenda{display:grid;gap:.75rem}.calendar-agenda-day{border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);overflow:hidden}.calendar-agenda-day>header{display:flex;justify-content:space-between;gap:1rem;padding:.75rem .9rem;background:var(--app-soft)}.calendar-agenda-day>header strong{text-transform:capitalize;font-size:.84rem}.calendar-agenda-day>header span{font-size:.72rem;color:var(--app-muted)}.calendar-agenda-day>div{display:grid}.calendar-agenda-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:.65rem;align-items:start;padding:.55rem .8rem;border-top:1px solid var(--app-line)}.calendar-agenda-row time{font-size:.7rem;color:var(--app-muted);padding-top:.45rem}.calendar-agenda-row .calendar-event{font-size:.78rem;padding:.55rem}.calendar-upcoming>div{display:grid;gap:.55rem}.calendar-upcoming-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:.5rem;align-items:start}.calendar-upcoming-row time{display:grid;place-items:center;border:1px solid var(--app-line);border-radius:12px;padding:.32rem}.calendar-upcoming-row time strong{font-size:1rem}.calendar-upcoming-row time span{font-size:.58rem;text-transform:uppercase;color:var(--app-muted)}.calendar-sync article{display:flex;align-items:center;gap:.55rem;padding:.65rem 0}.calendar-sync article>i{font-size:1.25rem}.calendar-sync article>span{display:grid;min-width:0}.calendar-sync article>span small{font-size:.66rem;color:var(--app-muted)}.calendar-sync article .app-status{margin-left:auto}.calendar-detail-shell{position:fixed;inset:0;z-index:120;display:grid;align-items:center;justify-items:end;padding:1rem;background:rgba(22,8,26,.48);backdrop-filter:blur(8px)}.calendar-detail-card{width:min(720px,100%);max-height:calc(100dvh - 2rem);overflow:auto;border-radius:24px;background:var(--app-surface);box-shadow:0 24px 70px rgba(20,8,26,.28);padding:1rem}.calendar-detail-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:start;padding-bottom:.85rem;border-bottom:1px solid var(--app-line)}.calendar-detail-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--app-primary-soft);color:var(--app-primary);font-size:1.2rem}.calendar-detail-card>header>div>span{font-size:.69rem;color:var(--app-muted)}.calendar-detail-card>header h3{margin:.12rem 0;font-family:var(--app-heading);font-size:1.35rem}.calendar-detail-card>header p{margin:0;color:var(--app-muted);font-size:.78rem;line-height:1.5}.calendar-detail-card>header>button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--app-line);border-radius:50%;background:var(--app-surface);color:var(--app-text)}.calendar-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.calendar-detail-meta>span:not(.app-status){display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .55rem;border-radius:10px;background:var(--app-soft);font-size:.7rem}.calendar-response{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.75rem;border:1px solid var(--app-line);border-radius:14px}.calendar-response>div{display:flex;gap:.4rem}.calendar-response button{min-height:36px;border:1px solid var(--app-line);border-radius:10px;background:var(--app-surface);padding:.35rem .65rem;font-weight:700;font-size:.7rem}.calendar-response button.is-active{background:var(--app-primary);border-color:var(--app-primary);color:#fff}.calendar-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.calendar-detail-card h4{margin:0 0 .55rem;font-size:.78rem}.calendar-attendees,.calendar-agenda-items{display:grid;gap:.4rem;list-style:none;padding:0;margin:0}.calendar-attendees li{display:flex;align-items:center;gap:.45rem;padding:.48rem;border-radius:12px;background:var(--app-soft)}.calendar-attendees li>span:nth-child(2){display:grid;min-width:0}.calendar-attendees li strong{font-size:.72rem}.calendar-attendees li small{font-size:.62rem;color:var(--app-muted)}.calendar-attendees li .app-status{margin-left:auto}.calendar-agenda-items li{display:flex;align-items:flex-start;gap:.45rem;padding:.48rem;border-bottom:1px solid var(--app-line)}.calendar-agenda-items li>button{border:0;background:transparent;color:var(--app-primary);font-size:1rem}.calendar-agenda-items li>span{display:grid}.calendar-agenda-items li strong{font-size:.73rem}.calendar-agenda-items li small{font-size:.62rem;color:var(--app-muted)}.calendar-agenda-items li.is-complete strong{text-decoration:line-through;color:var(--app-muted)}.calendar-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:1rem}.calendar-records>div{border:1px solid var(--app-line);border-radius:14px;padding:.7rem;min-width:0}.calendar-records article{display:grid;gap:.25rem;padding:.55rem 0;border-top:1px solid var(--app-line)}.calendar-records article span{font-size:.61rem;color:var(--app-muted)}.calendar-records article em{font-style:normal;color:var(--app-danger);font-weight:800}.calendar-records article strong{font-size:.73rem}.calendar-records article p,.calendar-records>div>p{margin:0;font-size:.7rem;line-height:1.45;color:var(--app-muted)}.calendar-detail-card>footer{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end;padding-top:1rem;margin-top:1rem;border-top:1px solid var(--app-line)}.calendar-participant-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.calendar-participant-picker label{display:flex!important;align-items:center;gap:.45rem;padding:.5rem;border:1px solid var(--app-line);border-radius:12px}.calendar-participant-picker label>span:last-child{display:grid}.calendar-participant-picker strong{font-size:.72rem}.calendar-participant-picker small{font-size:.62rem;color:var(--app-muted)}
@media(max-width:1180px){.calendar-layout{grid-template-columns:1fr}.calendar-side{position:static;grid-template-columns:1fr 1fr}.calendar-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.calendar-toolbar-main{align-items:flex-start;flex-direction:column}.calendar-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.calendar-filters label{min-width:0}.calendar-filters .calendar-mine-toggle{margin:0}.calendar-month{grid-template-columns:repeat(7,minmax(92px,1fr));overflow-x:auto}.calendar-day{min-height:130px}.calendar-day>header span{display:block}.calendar-detail-grid,.calendar-records{grid-template-columns:1fr}.calendar-side{grid-template-columns:1fr}.calendar-detail-shell{align-items:end;padding:0}.calendar-detail-card{max-height:92dvh;border-radius:24px 24px 0 0}.calendar-participant-picker{grid-template-columns:1fr}}
@media(max-width:560px){.calendar-metrics{grid-template-columns:1fr 1fr}.calendar-toolbar{padding:.7rem}.calendar-navigation{width:100%;flex-wrap:wrap}.calendar-navigation strong{order:-1;width:100%;margin:0 0 .2rem;font-size:1.15rem}.calendar-view-switch{width:100%}.calendar-view-switch button{flex:1}.calendar-filters{grid-template-columns:1fr}.calendar-month{display:none}.calendar-page:has(.calendar-month) .calendar-layout>main::before{content:'En pantallas pequeñas se muestra la agenda para mantener todos los eventos legibles.';display:block;padding:.7rem;border-radius:12px;background:var(--app-soft);font-size:.72rem;color:var(--app-muted);margin-bottom:.6rem}.calendar-page:has(.calendar-month) .calendar-layout>main::after{content:''}.calendar-week{grid-template-columns:repeat(7,82vw)}.calendar-agenda-row{grid-template-columns:64px minmax(0,1fr)}.calendar-response{align-items:flex-start;flex-direction:column}.calendar-response>div{width:100%}.calendar-response button{flex:1}.calendar-detail-card{padding:.8rem}.calendar-detail-card>header h3{font-size:1.15rem}.calendar-detail-card>footer .app-button{width:100%;justify-content:center}}
@media(max-width:390px){.calendar-metrics{grid-template-columns:1fr}.calendar-agenda-row{grid-template-columns:1fr}.calendar-agenda-row time{padding:0}.calendar-event{min-height:44px}.calendar-detail-meta>span:not(.app-status){width:100%}}


/* Block 16.1 · vertical mobile calendar and meeting records */
.calendar-mobile-view{display:none}
.calendar-action-controls{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
@media(max-width:560px){
  .calendar-desktop-view{display:none}
  .calendar-mobile-view{display:block}
  .calendar-page:has(.calendar-month) .calendar-layout>main::before,
  .calendar-page:has(.calendar-month) .calendar-layout>main::after{content:none;display:none}
  .calendar-mobile-view .calendar-agenda{display:grid;gap:.65rem}
  .calendar-mobile-view .calendar-agenda-day{border-radius:16px}
  .calendar-mobile-view .calendar-agenda-day>header{align-items:flex-start;gap:.25rem;flex-direction:column}
  .calendar-mobile-view .calendar-agenda-row{grid-template-columns:1fr;gap:.4rem}
  .calendar-mobile-view .calendar-agenda-row>time{padding:0 .15rem;font-size:.68rem}
  .calendar-mobile-view .calendar-event{width:100%;min-height:48px}
  .calendar-action-controls{width:100%;justify-content:space-between}
}

/* Block 31: hybrid backend switch */
.auth-backend-toggle{display:flex;align-items:center;gap:.8rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--app-border,#d9d1d7) 80%,transparent);border-radius:14px;background:color-mix(in srgb,var(--app-surface,#fff) 92%,var(--app-accent,#6f244f) 8%);cursor:pointer}.auth-backend-toggle input{inline-size:1.1rem;block-size:1.1rem;accent-color:var(--app-accent,#6f244f)}.auth-backend-toggle span{display:grid;gap:.15rem}.auth-backend-toggle strong{font-size:.86rem}.auth-backend-toggle small{font-size:.72rem;opacity:.7}

/* Block 31 · API authentication challenges */
.auth-api-challenge{display:grid;gap:1rem;margin-top:1rem;padding:1.15rem;border:1px solid color-mix(in srgb,var(--app-border,#d9d1c7) 80%,transparent);border-radius:1.1rem;background:color-mix(in srgb,var(--app-surface,#fff) 94%,var(--app-accent,#7a1f3d) 6%);box-shadow:0 18px 50px rgba(40,16,38,.1)}
.auth-api-challenge__head{display:grid;gap:.35rem}.auth-api-challenge__head>span{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--app-accent,#7a1f3d)}.auth-api-challenge__head h3{margin:0;font-size:1.25rem}.auth-api-challenge__head p{margin:0;color:var(--app-muted,#6b6470);line-height:1.55}.auth-api-challenge .auth-link-button{justify-self:center}.auth-api-challenge select{width:100%;border:0;background:transparent;font:inherit;color:inherit;outline:0}.auth-recovery{padding:.7rem .85rem;border:1px solid var(--app-border,#ddd);border-radius:.8rem}.auth-recovery summary{cursor:pointer;font-weight:700}.auth-recovery label{margin-top:.75rem}.auth-check a{text-decoration:underline}

/* Block 36 · Identity, organizations and access */
.access-inline-editor{position:relative;border:0;background:transparent;padding:0}.access-inline-editor>summary{list-style:none}.access-inline-editor>summary::-webkit-details-marker{display:none}.access-inline-editor[open]{min-width:min(420px,88vw)}.access-inline-editor[open]>summary{margin-left:auto}.access-inline-editor form,.role-create-form,.role-editor{display:grid;gap:.8rem;margin-top:.8rem;padding:1rem;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface-2)}.access-inline-editor label,.role-create-form label,.role-editor label{display:grid;gap:.35rem;font-size:.72rem;font-weight:800;color:var(--app-muted)}.access-inline-editor input,.access-inline-editor select,.access-inline-editor textarea,.role-create-form input,.role-create-form textarea,.role-editor input{width:100%;min-height:40px;border:1px solid var(--app-border);border-radius:11px;background:var(--app-surface);color:var(--app-text);padding:.55rem .65rem}.access-inline-editor textarea,.role-create-form textarea{min-height:90px;resize:vertical}.member-action-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.member-action-controls select{min-height:34px;max-width:180px;border:1px solid var(--app-border);border-radius:10px;background:var(--app-surface);color:var(--app-text);padding:.35rem .55rem}.app-button-danger{border-color:rgba(166,52,64,.25)!important;background:rgba(166,52,64,.09)!important;color:#983545!important}.role-create-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;max-height:430px;overflow:auto}.role-create-permissions fieldset{display:grid;align-content:start;gap:.35rem;margin:0;padding:.7rem;border:1px solid var(--app-border);border-radius:12px}.role-create-permissions legend{padding:0 .3rem;font-size:.7rem;font-weight:800;color:var(--app-primary)}.role-create-permissions label{display:flex;align-items:flex-start;grid-template-columns:none;gap:.45rem;color:var(--app-text);font-weight:600}.role-create-permissions input{width:auto;min-height:auto;margin-top:.15rem}.custom-role-editor{display:grid;gap:.5rem;padding:1rem 0;border-top:1px solid var(--app-border)}.custom-role-editor:first-of-type{border-top:0}.identity-security-center{margin-top:1rem}.identity-security-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.identity-security-grid>article{display:grid;align-content:start;gap:.65rem;padding:1rem;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface-2)}.identity-security-grid p{margin:0;color:var(--app-muted);font-size:.8rem;line-height:1.55}.security-list{display:grid;gap:.45rem}.security-list>div{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.65rem;border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface)}.security-list span{display:grid;gap:.15rem;min-width:0}.security-list small{color:var(--app-muted);font-size:.68rem}.security-list button{border:0;background:transparent;color:var(--app-primary);font-weight:800;cursor:pointer}.security-list em{color:var(--app-muted);font-size:.68rem;font-style:normal}.mfa-setup-panel,.mfa-recovery-codes{display:grid;gap:.45rem;padding:.75rem;border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface)}.mfa-setup-panel code,.mfa-recovery-codes code{overflow-wrap:anywhere;padding:.35rem .45rem;border-radius:8px;background:var(--app-soft);font-size:.72rem}.mfa-recovery-codes{grid-template-columns:repeat(2,minmax(0,1fr))}.mfa-recovery-codes strong{grid-column:1/-1}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1080px){.identity-security-grid{grid-template-columns:1fr 1fr}.identity-security-grid>article:last-child{grid-column:1/-1}}
@media(max-width:720px){.identity-security-grid{grid-template-columns:1fr}.identity-security-grid>article:last-child{grid-column:auto}.role-create-permissions{grid-template-columns:1fr}.member-action-controls{align-items:stretch;flex-direction:column}.member-action-controls select{max-width:none}.access-inline-editor[open]{min-width:0;width:100%}}
.identity-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.identity-settings-form{display:grid;gap:.75rem}.identity-settings-form label{display:grid;gap:.35rem;color:var(--app-muted);font-size:.72rem;font-weight:800}.identity-settings-form input,.identity-settings-form select{width:100%;min-height:42px;border:1px solid var(--app-border);border-radius:11px;background:var(--app-surface);color:var(--app-text);padding:.55rem .65rem}.identity-settings-form>.app-button{justify-self:start}@media(max-width:900px){.identity-settings-grid{grid-template-columns:1fr}}

/* Production responsive hardening */
html,body,.dashboard-page{width:100%;max-width:100%;overflow-x:hidden}
.dashboard-shell,.dashboard-workspace,.dashboard-main,.dashboard-content,.dashboard-content>*{min-width:0}
.app-card,.app-metric-card,.app-table-wrap,.app-dialog,.dashboard-popover{max-width:100%}
.app-card-head>div,.app-list-copy,.app-metric-head>span:first-child{min-width:0}
.app-card-head h3,.app-card-head p,.app-list-copy strong,.app-list-copy span{overflow-wrap:anywhere}
.app-button{max-width:100%;white-space:normal}

@media(max-width:1180px){
  .app-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-search{display:none}
}

@media(max-width:900px){
  .dashboard-page{overflow:auto}
  .dashboard-shell{display:block;min-height:100dvh;padding-bottom:calc(72px + var(--app-safe-bottom,0px))}
  .dashboard-workspace{height:auto;min-height:100dvh;display:block;overflow:visible}
  .dashboard-sidebar{position:fixed;inset:0 auto 0 0;z-index:120;width:min(86vw,320px);height:100dvh;transform:translateX(-105%);box-shadow:24px 0 70px rgba(20,8,20,.24)}
  .dashboard-sidebar.is-open{transform:translateX(0)}
  .dashboard-topbar{position:sticky;top:0;min-height:64px;padding:.65rem max(.75rem,var(--app-safe-right,0px)) .65rem max(.75rem,var(--app-safe-left,0px))}
  .dashboard-mobile-menu{display:grid;flex:0 0 auto}
  .dashboard-page-title{min-width:0;flex:1}
  .dashboard-page-title h1{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dashboard-top-actions{flex:0 0 auto}
  .dashboard-user-copy,.dashboard-user-button>i{display:none}
  .dashboard-main{overflow:visible;padding:1rem max(.85rem,var(--app-safe-right,0px)) calc(1.2rem + var(--app-safe-bottom,0px)) max(.85rem,var(--app-safe-left,0px))}
  .dashboard-content-head{align-items:flex-start;flex-direction:column;margin-bottom:.9rem}
  .dashboard-content-head h2{font-size:clamp(1.55rem,7vw,2.25rem)}
  .dashboard-mobile-nav{position:fixed;z-index:90;inset:auto 0 0;display:flex;align-items:center;gap:.25rem;padding:.45rem max(.5rem,var(--app-safe-right,0px)) calc(.45rem + var(--app-safe-bottom,0px)) max(.5rem,var(--app-safe-left,0px));border-top:1px solid var(--app-border);background:rgba(255,253,249,.94);box-shadow:0 -14px 40px rgba(40,16,38,.12);backdrop-filter:blur(18px)}
  .dashboard-mobile-nav a{min-width:0;flex:1;display:grid;justify-items:center;gap:.18rem;padding:.35rem .2rem;border-radius:12px;text-decoration:none;color:var(--app-muted);font-size:.58rem;font-weight:800}
  .dashboard-mobile-nav a.is-active{color:var(--app-wine);background:rgba(116,21,29,.08)}
  .dashboard-mobile-nav i{font-size:1.05rem}
  .dashboard-mobile-fab{bottom:calc(78px + var(--app-safe-bottom,0px))}
  .app-grid-2,.app-grid-3,.app-grid-4{grid-template-columns:1fr}
  .app-card-head{align-items:stretch;flex-direction:column}
  .app-card-head .app-button,.app-project-actions .app-button{width:100%}
  .app-message-layout{display:block;min-height:0}
  .app-conversation-list{border-right:0;border-bottom:1px solid var(--app-border)}
  .app-chat-messages{max-height:none}
  .app-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-form-grid{grid-template-columns:1fr}
  .catalog-toolbar-actions,.resource-toolbar{align-items:stretch;flex-direction:column;width:100%}
  .catalog-toolbar-actions .app-button,.resource-toolbar .app-button,.resource-toolbar label,.resource-toolbar select{width:100%}
}

@media(max-width:640px){
  .dashboard-topbar{gap:.45rem}
  .dashboard-page-title span{font-size:.54rem}
  .dashboard-page-title h1{font-size:1.18rem}
  .dashboard-content-head p{font-size:.78rem}
  .dashboard-popover{left:.5rem;right:.5rem;top:calc(64px + env(safe-area-inset-top));width:auto}
  .app-card,.app-metric-card{border-radius:18px}
  .app-card{padding:.85rem}
  .app-metric-value{font-size:clamp(1.45rem,10vw,2.05rem)}
  .app-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .app-table{min-width:680px}
  .app-list-item{grid-template-columns:36px minmax(0,1fr);align-items:flex-start}
  .app-list-aside{grid-column:2;text-align:left}
  .app-file-grid{grid-template-columns:1fr}
  .app-project-actions{display:grid;grid-template-columns:1fr}
  .app-drawer-panel{width:100%;padding:1rem max(.85rem,var(--app-safe-right,0px)) calc(1rem + var(--app-safe-bottom,0px)) max(.85rem,var(--app-safe-left,0px))}
  .app-dialog{width:calc(100vw - 1rem);max-height:92dvh;border-radius:20px}
}

@media(max-width:430px){
  .dashboard-topbar{padding-inline:.55rem}
  .dashboard-mobile-menu,.dashboard-icon-button,.dashboard-user-button{width:38px;height:38px;min-width:38px;min-height:38px}
  .dashboard-avatar{width:32px;height:32px;border-radius:10px}
  .dashboard-page-title h1{max-width:42vw}
  .dashboard-mobile-nav a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Block 39 · React executive dashboard polish */
.app-metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.85rem;
  margin:0 0 1rem;
}
.executive-dashboard-hero{
  grid-template-columns:minmax(0,1fr) minmax(280px,380px);
  align-items:stretch;
}
.executive-dashboard-filters{
  grid-template-columns:1fr;
  align-content:center;
  justify-items:start;
  min-height:100%;
}
.executive-dashboard-filters>span,
.executive-dashboard-filters>strong,
.executive-dashboard-filters>small{
  position:relative;
  z-index:1;
  display:block;
  max-width:100%;
}
.executive-dashboard-filters>span{
  color:rgba(255,255,255,.62);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.executive-dashboard-filters>strong{
  overflow:hidden;
  text-overflow:ellipsis;
  font-family:"Fraunces",Georgia,serif;
  font-size:clamp(1.25rem,2vw,1.7rem);
  line-height:1.05;
}
.executive-dashboard-filters>small{
  color:rgba(255,255,255,.66);
  font-size:.76rem;
  line-height:1.45;
}
.executive-dashboard-grid>.executive-widget{
  grid-column:span 4;
  display:flex;
  flex-direction:column;
  min-height:360px;
}
.executive-widget .app-list,
.executive-widget .executive-project-list,
.executive-widget .executive-renewal-list{
  align-content:start;
}
.executive-project-list article{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.7rem;
  padding:.72rem 0;
  border-top:1px solid rgba(40,16,38,.07);
}
.executive-project-list article:first-child{border-top:0}
.executive-project-list article>span:first-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:.32rem .55rem;
  border-radius:999px;
  font-size:.62rem;
  font-weight:900;
  white-space:nowrap;
}
.executive-project-list article>span:first-child.is-success{
  color:#12694d;
  background:rgba(22,122,88,.1);
}
.executive-project-list article>span:first-child.is-danger{
  color:#9d3037;
  background:rgba(180,59,66,.1);
}
.executive-project-list article>div{min-width:0}
.executive-project-list article strong,
.executive-project-list article small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
}
.executive-project-list article strong{
  white-space:nowrap;
  font-size:.82rem;
}
.executive-project-list article small{
  margin-top:.2rem;
  color:var(--app-muted);
  font-size:.72rem;
  line-height:1.35;
}
.executive-renewal-list article{
  grid-template-columns:48px minmax(0,1fr) auto;
}
.executive-renewal-list article .app-card-link,
.executive-project-list article .app-card-link{
  justify-self:end;
  min-width:54px;
}
.executive-renewal-date i{
  font-size:1.15rem;
}

@media(max-width:1280px){
  .executive-dashboard-grid>.executive-widget{grid-column:span 6}
  .executive-dashboard-grid>.executive-widget:last-child{grid-column:1/-1;min-height:0}
}

@media(max-width:900px){
  .app-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .executive-dashboard-grid>.executive-widget{grid-column:1/-1;min-height:0}
}

@media(max-width:640px){
  .app-metric-grid{gap:.65rem}
  .executive-dashboard-hero{grid-template-columns:1fr}
  .executive-dashboard-filters{align-content:start}
  .executive-project-list article,
  .executive-renewal-list article{
    grid-template-columns:minmax(0,1fr);
    justify-items:start;
  }
  .executive-project-list article>span:first-child{order:2}
  .executive-project-list article .app-card-link,
  .executive-renewal-list article .app-card-link{
    justify-self:start;
  }
}

@media(max-width:380px){
  .app-metric-grid{grid-template-columns:1fr}
}

/* Admin unified overrides. Keep this at the end: module CSS may load later, so core declarations use !important. */
.dashboard-content-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:1rem!important;width:100%!important;margin:0 auto 1.05rem!important}
.dashboard-content-head>div:first-child{min-width:0}
.dashboard-content-head span:first-child,.dashboard-content-head .auth-eyebrow{display:block;margin-bottom:.18rem;color:var(--app-wine);font-size:.74rem;font-weight:650;letter-spacing:0;text-transform:none}
.dashboard-content-head h2{margin:0!important;color:var(--app-text)!important;font-family:"Fraunces",Georgia,serif!important;font-size:clamp(2rem,3.05vw,3.05rem)!important;line-height:.92!important;letter-spacing:-.045em}
.dashboard-content-head p{max-width:68ch!important;margin:.55rem 0 0!important;color:var(--app-muted)!important;font-size:.86rem!important;line-height:1.55!important}
.dashboard-content-head .dashboard-content-actions,.dashboard-content-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}
.app-metric-grid,.catalog-kpis,.support-metrics,.calendar-metrics,.resource-metrics,.quality-metrics,.gov-metrics,.app-metrics{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;gap:.8rem!important;margin:0 0 1rem!important}
.app-metric-card,.catalog-kpi,.support-metrics>article,.calendar-metrics>article,.resource-metrics>article,.quality-metrics>article,.gov-metric,.app-metrics>article{position:relative!important;overflow:hidden!important;display:grid!important;align-content:start!important;gap:.42rem!important;min-height:104px!important;padding:1rem 1.05rem!important;border:1px solid var(--app-border)!important;border-radius:20px!important;color:var(--app-text)!important;background:rgba(255,253,249,.96)!important;box-shadow:0 12px 32px rgba(40,16,38,.055)!important}
.app-metric-card::after,.catalog-kpi::after,.support-metrics>article::after,.calendar-metrics>article::after,.resource-metrics>article::after,.quality-metrics>article::after,.gov-metric::after,.app-metrics>article::after{content:"";position:absolute;right:-28px;bottom:-38px;width:90px;height:90px;border-radius:999px;background:rgba(197,138,69,.07);pointer-events:none}
.app-metric-head,.catalog-kpi>span,.support-metrics>article>span,.calendar-metrics>article>span,.resource-metrics>article>span,.quality-metrics>article>span,.gov-metric small:first-child,.app-metrics>article>span{color:var(--app-muted)!important;font-size:.72rem!important;font-weight:750!important;line-height:1.25!important;text-transform:none!important;letter-spacing:0!important}
.app-metric-value,.app-metric-card>strong,.catalog-kpi>strong,.support-metrics>article>strong,.calendar-metrics>article>strong,.resource-metrics>article>strong,.quality-metrics>article>strong,.gov-metric strong,.app-metrics>article>strong{color:var(--app-text)!important;font-family:"Fraunces",Georgia,serif!important;font-size:clamp(1.65rem,2.4vw,2.15rem)!important;line-height:.96!important}
.app-metric-note,.catalog-kpi>small,.calendar-metrics>article>small,.resource-metrics>article>small,.quality-metrics>article>small,.gov-metric em,.app-metrics>article>small{color:var(--app-muted)!important;font-size:.76rem!important;font-style:normal!important;line-height:1.35!important}
.app-metric-icon,.gov-metric>span,.calendar-metrics>article>i{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;border-radius:11px!important;color:var(--app-wine)!important;background:rgba(128,17,46,.08)!important;font-size:1rem!important}
.app-metric-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:.75rem!important}
.catalog-toolbar,.task-toolbar,.support-filters,.app-toolbar,.app-filters,.resource-toolbar,.gov-toolbar{width:100%!important;margin:0 0 1rem!important;padding:.7rem!important;border:1px solid var(--app-border)!important;border-radius:18px!important;background:rgba(255,253,249,.94)!important;box-shadow:0 10px 28px rgba(40,16,38,.045)!important}
.catalog-toolbar,.app-toolbar,.app-filters,.resource-toolbar,.support-filters,.gov-toolbar{display:flex!important;align-items:center!important;gap:.6rem!important;flex-wrap:wrap!important}
.catalog-toolbar label,.app-filters label,.support-search,.task-search,.gov-search{flex:1 1 280px!important;min-width:220px!important;border-color:var(--app-border)!important;background:#fff!important}
.catalog-toolbar input,.catalog-toolbar select,.app-toolbar input,.app-toolbar select,.app-filters input,.app-filters select,.support-filters input,.support-filters select,.task-toolbar input,.task-toolbar select,.gov-toolbar input,.gov-toolbar select{min-height:42px!important;border-radius:12px!important;font-size:.78rem!important}
.catalog-toolbar-actions,.app-toolbar-actions{margin-left:auto!important}
.task-toolbar{display:grid!important;gap:.65rem!important}
.task-toolbar-main{grid-template-columns:minmax(260px,1fr) auto auto!important}
.task-filter-row{grid-template-columns:repeat(5,minmax(140px,1fr)) auto!important}
.functional-actions{display:grid!important;gap:1rem!important;padding:1rem!important}
.functional-actions .app-card-head{padding:0!important;border:0!important}
.functional-actions-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;gap:.85rem!important}
.functional-actions form{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;align-items:end!important;gap:.65rem!important;min-width:0!important;padding:.85rem!important;border:1px solid var(--app-border)!important;border-radius:16px!important;background:#fff!important}
.functional-actions h4{grid-column:1/-1;margin:0!important;color:var(--app-text)!important;font-size:.9rem!important}
.functional-actions label{display:grid!important;gap:.32rem!important;color:var(--app-muted)!important;font-size:.68rem!important;font-weight:760!important}
.functional-actions input,.functional-actions select,.functional-actions textarea{width:100%!important;min-width:0!important;min-height:42px!important;padding:.58rem .7rem!important;border:1px solid var(--app-border)!important;border-radius:12px!important;color:var(--app-text)!important;background:#fff!important;font:inherit!important;font-size:.78rem!important}
.functional-actions textarea{min-height:82px!important;resize:vertical!important}
.functional-actions .app-button{min-height:42px!important}
.gov-tabs,.catalog-tabs,.support-tabs{margin:0 0 1rem!important;border-radius:18px!important}
@media(max-width:900px){.dashboard-content-head{grid-template-columns:1fr!important;align-items:start!important}.dashboard-content-head .dashboard-content-actions,.dashboard-content-actions{justify-content:flex-start}.task-toolbar-main,.task-filter-row{grid-template-columns:1fr!important}.catalog-toolbar label,.app-filters label,.support-search,.task-search,.gov-search{flex-basis:100%!important;min-width:0!important}}
@media(max-width:520px){.app-metric-grid,.catalog-kpis,.support-metrics,.calendar-metrics,.resource-metrics,.quality-metrics,.gov-metrics,.app-metrics{grid-template-columns:1fr!important}.catalog-toolbar .app-button,.support-filters .app-button,.task-toolbar .app-button,.dashboard-content-actions .app-button{width:100%}}
