:root{
  --primary-color:#2563eb;
  --primary-hover-color:#1d4ed8;
  --background-color:#f5f7fb;
  --sidebar-color:#fff;
  --text:#182238;
  --muted:#68768c;
  --border:#e3e9f2;
  --danger:#be3434;
  --radius:12px;
  font-family:Inter,'Segoe UI','Microsoft YaHei','PingFang SC',sans-serif;
  color:var(--text);
  font-size:16px;
  color-scheme:light
}
*{
  box-sizing:border-box
}
body{
  margin:0;
  background:var(--background-color);
  line-height:1.55
}
a{
  color:var(--primary-color);
  text-decoration:none
}
a:hover{
  text-decoration:underline
}
button,input,select,textarea{
  font:inherit
}
button,a,input,select,textarea{
  outline-offset:3px
}
input,select,textarea{
  width:100%;
  border:1px solid #ccd6e4;
  background:#fff;
  color:var(--text);
  border-radius:7px;
  padding:10px 12px;
  min-height:43px
}
input:focus,select:focus,textarea:focus{
  outline:2px solid color-mix(in srgb,var(--primary-color) 30%,transparent);
  border-color:var(--primary-color)
}
textarea{
  resize:vertical
}
input[type=color]{
  padding:4px;
  width:90px
}
input[type=checkbox]{
  width:17px;
  height:17px;
  min-height:0;
  accent-color:var(--primary-color)
}
input:disabled{
  background:#f3f5f8
}
label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:.875rem;
  font-weight:550;
  min-width:0
}
small{
  display:block;
  font-size:.8rem;
  color:var(--muted);
  font-weight:400;
  line-height:1.5;
  margin-top:4px
}
h1,h2,h3,p{
  margin-top:0
}
h1{
  font-size:1.85rem;
  line-height:1.3;
  letter-spacing:-.025em;
  margin-bottom:10px;
  overflow-wrap:anywhere
}
h2{
  font-size:1.06rem;
  margin-bottom:20px
}
h3{
  font-size:.88rem;
  font-weight:500;
  color:var(--muted);
  margin-bottom:12px
}
p{
  margin-bottom:16px
}
button{
  cursor:pointer
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:42px;
  padding:9px 17px;
  border:1px solid transparent;
  border-radius:7px;
  background:var(--primary-color);
  color:white;
  font-size:.875rem;
  font-weight:600;
  white-space:nowrap;
  text-decoration:none;
  transition:filter .15s
}
.btn:hover{
  filter:brightness(.94);
  text-decoration:none
}
.btn:disabled{
  opacity:.4;
  cursor:default
}
.btn.secondary{
  background:#fff;
  border-color:var(--border);
  color:#3b4d68
}
.btn.danger-outline{
  background:white;
  color:var(--danger);
  border-color:#eccaca
}
.danger-button{
  background:var(--danger)
}
.quiet{
  border:0;
  background:transparent;
  padding:6px 8px;
  font-size:.875rem;
  color:var(--muted)
}
.danger{
  color:var(--danger)!important
}
.muted,.hint{
  color:var(--muted)
}
.hint{
  font-size:.875rem
}
.text-right{
  text-align:right
}
.sidebar{
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  width:246px;
  background:var(--sidebar-color);
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  padding:28px 18px 14px;
  z-index:30
}
.brand{
  display:flex;
  gap:11px;
  align-items:center;
  color:var(--text);
  padding:0 9px 29px;
  font-weight:700;
  min-width:0
}
.brand:hover{
  text-decoration:none
}
.brand>span:last-child{
  min-width:0;
  font-size:1rem
}
.brand small{
  font-size:.75rem;
  white-space:normal;
  overflow-wrap:anywhere;
  max-height:56px;
  overflow:hidden
}
.brand img{
  width:39px;
  height:39px;
  object-fit:contain;
  flex-shrink:0
}
.brand-mark{
  background:var(--primary-color);
  color:#fff;
  border-radius:10px;
  width:39px;
  height:39px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  flex-shrink:0
}
.brand-mark.large{
  width:60px;
  height:60px;
  font-size:30px;
  border-radius:14px
}
.sidebar nav{
  overflow-y:auto;
  flex:1
}
.sidebar nav>a{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 14px;
  border-radius:7px;
  margin-bottom:5px;
  color:#52617a;
  font-size:.9rem
}
.sidebar nav>a>span{
  width:20px;
  font-size:20px;
  text-align:center;
  line-height:1
}
.sidebar nav>a:hover{
  background:#f3f6fc;
  text-decoration:none
}
.sidebar nav>a.active{
  color:var(--primary-color);
  background:color-mix(in srgb,var(--primary-color) 9%,white);
  font-weight:650
}
.nav-label{
  font-size:.75rem;
  color:#8a95a8;
  margin:25px 14px 9px
}
.sidebar-footer{
  border-top:1px solid var(--border);
  padding:18px 6px 0
}
.sidebar-footer>a{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:.875rem;
  color:var(--text)
}
.sidebar-footer form{
  margin-top:8px
}
.avatar{
  width:35px;
  height:35px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eaf0fb;
  color:var(--primary-color);
  border-radius:50%
}
.workspace{
  margin-left:246px;
  min-width:0
}
.topbar{
  height:76px;
  border-bottom:1px solid var(--border);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 38px;
  gap:20px
}
.workspace-name{
  font-size:.875rem;
  color:var(--muted)
}
.global-search{
  display:flex;
  gap:4px;
  align-items:center
}
.global-search input{
  background:#f7f9fc;
  width:270px;
  border-color:transparent;
  font-size:.875rem;
  min-height:38px
}
.mobile-menu{
  display:none
}
main{
  padding:32px 38px;
  max-width:2080px;
  margin:0 auto;
  min-width:0
}
.app-footer{
  padding:8px 38px 24px;
  color:#8894a5;
  font-size:.8rem;
  display:flex;
  gap:12px
}
.page-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:27px
}
.page-heading p{
  margin-bottom:0;
  color:var(--muted);
  font-size:.9rem
}
.page-heading .eyebrow{
  font-size:.8rem;
  color:var(--muted);
  margin-bottom:9px;
  letter-spacing:.035em
}
.breadcrumb{
  display:block;
  font-size:.875rem;
  margin-bottom:10px
}
.actions,.form-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap
}
.form-actions{
  margin-top:10px
}
.grow{
  flex:1
}
.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
  min-width:0
}
.space-top{
  margin-top:24px
}
.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:20px
}
.section-heading h2{
  margin:0
}
.section-heading a{
  font-size:.8rem
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  margin-bottom:24px
}
.stat-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:21px 24px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:12px;
  min-height:118px
}
.stat-card>span{
  font-size:.875rem;
  color:var(--muted)
}
.stat-card strong{
  display:block;
  font-size:2rem;
  line-height:1.3;
  margin:0;
  font-variant-numeric:tabular-nums
}
.dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}
.dashboard-card{
  height:360px;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden
}
.dashboard-card>.section-heading,.dashboard-card-caption{
  flex:0 0 auto
}
.dashboard-card>.section-heading{
  align-items:flex-start
}
.dashboard-card>.section-heading>a{
  flex-shrink:0
}
.dashboard-card-caption{
  margin-bottom:12px
}
.dashboard-card-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  /* At a card's boundary, continue scrolling the surrounding page. */
  overscroll-behavior:auto;
  padding-right:8px;
  overflow-wrap:anywhere
}
.dashboard-card-body:focus-visible{
  outline:2px solid var(--primary-color);
  outline-offset:-2px;
  border-radius:4px
}
.dashboard-card-body>.empty:only-child{
  height:100%;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 14px
}
.dashboard-card-body .milestone-row>div,
.dashboard-card-body .activity>div,
.dashboard-card-body .distribution>div{
  min-width:0
}
.dashboard-card-body .date-box,
.dashboard-card-body .activity>i{
  flex-shrink:0
}
.list-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid #edf1f6
}
.list-row:last-child{
  border-bottom:0
}
.list-row.compact{
  padding:9px 0
}
.row-title{
  color:var(--text);
  font-weight:600;
  line-height:1.5
}
.milestone-row{
  display:flex;
  gap:16px;
  padding:12px 0;
  align-items:center;
  color:var(--text)
}
.milestone-row strong{
  font-size:.9rem
}
.date-box{
  padding:8px;
  background:#f0f5ff;
  color:var(--primary-color);
  border-radius:8px;
  min-width:55px;
  font-size:.85rem;
  text-align:center
}
.distribution{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px
}
.type-dot{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:2px;
  margin-right:8px
}
.type-label{
  white-space:nowrap
}
.activity{
  display:flex;
  gap:12px;
  margin:0 0 16px
}
.activity>i{
  width:6px;
  height:6px;
  margin-top:9px;
  background:#b5c8e6;
  border-radius:50%;
  flex-shrink:0
}
.activity strong{
  font-size:.875rem;
  font-weight:500
}
.badge{
  display:inline-block;
  padding:3px 9px;
  border-radius:5px;
  background:#f0f3f8;
  color:#66758c;
  font-size:.78rem;
  font-weight:550;
  white-space:nowrap
}
.status-active{
  background:#eaf1ff;
  color:#245cbe
}
.status-done{
  background:#e8f5ee;
  color:#29704e
}
.status-blocked{
  background:#fff0ed;
  color:#b34936
}
.status-paused{
  background:#fff6dd;
  color:#8a691c
}
.status-archived{
  background:#edeef1;
  color:#757c88
}
.progress-wrap{
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  font-size:.8rem;
  font-variant-numeric:tabular-nums
}
.progress{
  height:6px;
  min-width:75px;
  width:90px;
  background:#eaf0f8;
  border-radius:5px;
  overflow:hidden;
  display:inline-block
}
.progress>i{
  height:100%;
  display:block;
  background:var(--primary-color);
  border-radius:5px
}
.summary-progress{
  margin-bottom:24px
}
.summary-progress .progress{
  width:200px
}
.filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-bottom:24px;
  align-items:end
}
.filters .wide{
  grid-column:span 2
}
.filter-end{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:16px;
  justify-content:flex-end;
  flex-wrap:wrap
}
.check{
  flex-direction:row;
  align-items:center;
  font-weight:400
}
.table-scroll{
  overflow-x:auto
}
table{
  width:100%;
  border-collapse:collapse;
  font-size:.875rem
}
th{
  text-align:left;
  white-space:nowrap;
  font-size:.8rem;
  color:var(--muted);
  font-weight:500;
  padding:13px 14px;
  background:#f8fafc;
  border-bottom:1px solid var(--border)
}
td{
  padding:16px 14px;
  border-bottom:1px solid #edf1f7;
  vertical-align:middle;
  overflow-wrap:anywhere
}
tr:last-child td{
  border-bottom:0
}
tbody tr:hover{
  background:#fbfcff
}
.project-table{
  min-width:1130px
}
.project-table td:first-child{
  min-width:210px;
  max-width:320px
}
.project-table td:not(:first-child){
  white-space:nowrap
}
.pagination{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:20px;
  color:var(--muted);
  font-size:.8rem;
  gap:16px
}
.pagination>div{
  display:flex;
  gap:8px
}
.empty{
  color:var(--muted);
  text-align:center;
  padding:38px 18px;
  font-size:.9rem;
  line-height:1.9
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px
}
.span-2{
  grid-column:1/-1
}
.stack{
  display:flex;
  flex-direction:column;
  gap:20px
}
.narrow{
  max-width:650px
}
.picker{
  position:relative
}
.picker-selected{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap
}
.picker-selected:empty{
  display:none
}
.picker-selected>span{
  font-size:.8rem;
  background:#edf3ff;
  padding:3px 7px;
  border-radius:4px;
  overflow-wrap:anywhere;
  margin-bottom:5px
}
.picker-search{
  font-weight:400
}
.picker-results{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  max-height:250px;
  overflow:auto;
  background:white;
  border:1px solid var(--border);
  box-shadow:0 8px 25px #142a4c18;
  border-radius:6px;
  z-index:50
}
.picker-results button{
  display:block;
  text-align:left;
  width:100%;
  padding:11px 12px;
  border:0;
  border-bottom:1px solid #eff2f6;
  background:white;
  color:var(--text);
  font-size:.875rem
}
.picker-results button:hover,.picker-results button:focus{
  background:#edf3ff
}
.tabs{
  display:flex;
  gap:22px;
  border-bottom:1px solid var(--border);
  margin-bottom:24px;
  overflow-x:auto
}
.tabs a{
  padding:13px 3px;
  color:var(--muted);
  white-space:nowrap;
  font-size:.9rem;
  border-bottom:2px solid transparent
}
.tabs a.active{
  color:var(--primary-color);
  border-bottom-color:var(--primary-color);
  font-weight:600
}
.detail-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:24px
}
.details{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:15px 18px;
  font-size:.9rem;
  overflow-wrap:anywhere
}
.details dt{
  color:var(--muted)
}
.details dd{
  margin:0
}
.prose{
  font-size:.95rem;
  overflow-wrap:anywhere;
  line-height:1.85
}
.prose img{
  max-width:100%
}
.prose pre{
  overflow-x:auto;
  background:#f5f7fb;
  padding:15px;
  border-radius:8px
}
.prose h1{
  font-size:1.4rem
}
.prose h2{
  font-size:1.2rem
}
.prose blockquote{
  border-left:3px solid var(--border);
  margin:15px 0;
  padding:4px 16px;
  color:var(--muted)
}
.note{
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid var(--border)
}
.note .prose{
  margin-top:12px
}
.upload-form{
  display:flex;
  align-items:flex-end;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:20px;
  padding-bottom:22px;
  border-bottom:1px solid var(--border)
}
.upload-form>small{
  width:100%
}
.relation-form{
  margin-bottom:20px;
  padding-bottom:22px;
  border-bottom:1px solid var(--border)
}
.relation-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--border);
  overflow-wrap:anywhere
}
.relation-kind{
  display:inline-block;
  font-size:.8rem;
  color:#916320;
  margin:0 12px
}
.audit-entry{
  padding:20px 0;
  border-bottom:1px solid var(--border)
}
.audit-entry>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:.875rem
}
.audit-entry details{
  margin-top:10px;
  font-size:.875rem
}
.audit-entry summary{
  cursor:pointer;
  color:var(--primary-color)
}
.audit-entry td{
  max-width:450px;
  white-space:pre-wrap
}
.type-form{
  display:flex;
  gap:18px;
  align-items:flex-end;
  flex-wrap:wrap
}
.type-form>label:first-of-type{
  flex:1;
  min-width:160px
}
.type-form>label:nth-of-type(3){
  width:100px
}
.settings-form{
  display:flex;
  flex-direction:column;
  gap:22px
}
.settings-form .card>h2{
  border-bottom:1px solid var(--border);
  padding-bottom:16px
}
.sticky-actions{
  position:sticky;
  bottom:0;
  padding:14px;
  background:#f5f7fbeb;
  z-index:10
}
.logo-setting{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap
}
.logo-setting img{
  width:64px;
  height:64px;
  object-fit:contain
}
.search-result{
  display:flex;
  align-items:start;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--border);
  color:var(--text)
}
.alert{
  background:#fff7e3;
  border:1px solid #eedbac;
  padding:13px 17px;
  border-radius:8px;
  margin-bottom:20px;
  font-size:.9rem
}
.alert.error{
  background:#fff1f1;
  color:#9f3333;
  border-color:#efcdcd
}
.alert.success{
  background:#eaf7ee;
  color:#27643f;
  border-color:#cce8d5
}
.alert form{
  display:inline-block;
  margin:0 12px
}
.auth-body{
  background:radial-gradient(ellipse at 50% 0%,#e8f0ff,transparent 65%),#f5f8fd
}
.auth-main{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:55px 20px 110px;
  max-width:none
}
.auth-main>.alert{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  max-width:90vw
}
.login-card{
  width:430px;
  max-width:100%;
  padding:38px 40px 42px;
  background:white;
  border:1px solid #e1e8f4;
  border-radius:15px;
  box-shadow:0 12px 45px #2443750a
}
.login-brand{
  text-align:center;
  margin-bottom:30px
}
.login-logo{
  width:64px;
  height:64px;
  object-fit:contain
}
.login-brand h1{
  font-size:1.22rem;
  margin:22px 0 12px;
  line-height:1.5
}
.login-brand h2{
  font-size:1rem;
  font-weight:500;
  margin-bottom:6px
}
.login-brand p{
  color:var(--muted);
  font-size:.875rem;
  margin:0
}
.login-card .btn{
  margin-top:8px;
  width:100%;
  height:46px
}
.login-footer{
  position:absolute;
  bottom:22px;
  left:20px;
  right:20px;
  text-align:center;
  font-size:.8rem;
  color:#7a879c;
  line-height:1.8
}
.login-footer a{
  color:#64738a
}
.error-card{
  max-width:650px
}
.error-card .eyebrow{
  color:var(--primary-color);
  font-size:2rem
}
.gantt-frame{
  border:0;
  width:100%;
  height:640px;
  margin-top:20px
}
.gantt-scroll{
  overflow:auto;
  max-height:70vh;
  position:relative
}
.gantt-scroll svg{
  display:block;
  font-family:inherit
}
.gantt-card{
  padding:20px
}
.gantt-row-label{
  font-size:13px;
  fill:var(--text)
}
.gantt-axis-label{
  font-size:12px;
  fill:#67768f
}
.gantt-bar-label{
  font-size:12px;
  fill:#3e506f
}
.gantt-link{
  cursor:pointer
}
.gantt-link:hover text{
  text-decoration:underline
}
.graph-scroll{
  overflow:auto
}
.graph-scroll svg{
  display:block;
  min-width:700px;
  min-height:360px;
  width:100%
}
.graph-node-list{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding-top:20px
}
.graph-node-list button{
  white-space:normal;
  max-width:330px
}
.graph-node{
  cursor:pointer
}
.graph-node text{
  font-size:14px;
  fill:var(--text)
}
body.embedded .sidebar,body.embedded .topbar,body.embedded .app-footer,body.embedded .page-heading{
  display:none
}
body.embedded .workspace{
  margin:0
}
body.embedded main{
  padding:0
}
body.embedded .filters{
  margin-top:0
}
@media(min-width:1800px){
  main{
    padding:42px 52px
  }
  .topbar{
    padding:0 52px
  }
  .stats-grid{
    gap:22px
  }
  .card{
    padding:28px
  }
}
@media(max-width:1200px){
  .sidebar{
    width:215px;
    padding-left:12px;
    padding-right:12px
  }
  .workspace{
    margin-left:215px
  }
  main{
    padding:26px 24px
  }
  .topbar{
    padding:0 24px
  }
  .page-heading{
    align-items:flex-start
  }
  .page-heading>.actions{
    justify-content:flex-end
  }
  .stats-grid{
    gap:10px
  }
  .stat-card{
    padding:17px
  }
  .filters{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .dashboard-grid{
    grid-template-columns:1fr 1fr
  }
  .workspace-name{
    display:none
  }
  .topbar{
    justify-content:flex-end
  }
}
@media(max-width:900px){
  .sidebar{
    transform:translateX(-100%);
    transition:transform .2s
  }
  .sidebar.open{
    transform:translateX(0);
    box-shadow:4px 0 25px #1a2e5720
  }
  .workspace{
    margin:0
  }
  .mobile-menu{
    display:block
  }
  .topbar{
    justify-content:space-between;
    height:64px
  }
  .stats-grid{
    grid-template-columns:repeat(3,1fr)
  }
  .dashboard-grid,.detail-grid{
    grid-template-columns:1fr
  }
  .filters{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .page-heading{
    flex-wrap:wrap
  }
  .page-heading>.actions{
    justify-content:flex-start
  }
  .sidebar-footer{
    background:white
  }
}
@media(max-width:580px){
  main{
    padding:22px 14px
  }
  .card{
    padding:18px
  }
  .dashboard-card{
    height:330px
  }
  .topbar{
    padding:0 12px
  }
  .global-search input{
    width:205px
  }
  h1{
    font-size:1.55rem
  }
  .stats-grid{
    grid-template-columns:repeat(2,1fr)
  }
  .stat-card strong{
    font-size:1.75rem
  }
  .filters,.form-grid{
    grid-template-columns:1fr
  }
  .filters .wide,.span-2{
    grid-column:auto
  }
  .filter-end{
    justify-content:flex-start
  }
  .distribution{
    gap:16px
  }
  .details{
    grid-template-columns:100px 1fr;
    gap:13px
  }
  .login-card{
    padding:30px 26px
  }
  .login-footer{
    font-size:.75rem
  }
  .pagination{
    align-items:flex-start;
    flex-direction:column
  }
  .tabs{
    gap:18px
  }
  .audit-entry>div{
    flex-direction:column
  }
  .relation-row{
    flex-direction:column
  }
  .relation-kind{
    display:block;
    margin:10px 0
  }
  .auth-main{
    padding-bottom:130px
  }
  .page-heading .btn{
    font-size:.8rem
  }
}
.auth-main{
  position:relative
}

.tree-toggle {border:1px solid var(--primary-color);background:transparent;color:var(--primary-color);border-radius:5px;padding:4px 7px;margin-right:8px;cursor:pointer;float:left}
.tree-toggle[aria-expanded="true"] {background:var(--primary-color);color:#fff}
.parent-path {display:block;max-width:450px;white-space:normal;color:#64748b;font-size:11px}
details>summary {cursor:pointer;font-weight:600;padding:12px 0}
.stat-card a {display:block;text-decoration:none}
.stat-card a:hover {text-decoration:underline}

.tracking-text {white-space:pre-wrap;overflow-wrap:anywhere}

.field-error {color:#b91c1c;font-size:14px;margin:0}
.dashboard-grid > .card {min-width:0}
.dashboard-grid .list-row {gap:12px;flex-wrap:wrap}
.dashboard-grid .list-row>div {min-width:0;overflow-wrap:anywhere}

.quick-update {margin-bottom:24px;scroll-margin-top:24px;border-top:3px solid var(--primary-color)}
.quick-link {display:inline-block;margin-top:6px;font-size:12px}
.progress-entry {padding:20px 0;border-bottom:1px solid #e2e8f0}
.latest-note {margin-top:20px;border-top:1px solid #e2e8f0}
input[readonly] {background:#f1f5f9;color:#64748b}

/* Project records keep editing separate from the overview. */
.record-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.record-nav a{padding:9px 18px;border:1px solid var(--border-color,#dce5f1);border-radius:7px;background:#fff;color:var(--text-muted,#64748b)}.record-nav a.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.record-toolbar{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-bottom:16px}.history-details{margin-top:20px}.history-actions{margin-top:18px;display:flex;justify-content:flex-end}.history-details dd,.note .prose,.tracking-text{overflow-wrap:anywhere}.quick-update details>summary{margin-bottom:16px}@media(max-width:600px){.record-toolbar{align-items:flex-start;flex-direction:column}.history-details{grid-template-columns:1fr}.history-details dt{margin-top:8px}.record-nav a{padding:8px 12px}}
