.dashboard-page { display:grid; gap:20px; }

.dashboard-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; min-height:68px; }
.dashboard-heading > div { display:grid; gap:4px; }
.dashboard-eyebrow { color:#0759d3; font-size:.72rem; font-weight:760; letter-spacing:.07em; text-transform:uppercase; }
.dashboard-heading h1 { margin:0; color:#0d1b35; font-size:2rem; line-height:1.05; }
.dashboard-heading p { margin:0; color:#708098; font-size:.86rem; }
.dashboard-new-order { display:inline-flex; min-height:44px; align-items:center; gap:7px; white-space:nowrap; text-decoration:none; }
.dashboard-new-order span { font-size:1.15rem; line-height:1; }

.dashboard-loading { display:grid; min-height:220px; place-items:center; align-content:center; gap:12px; }
.dashboard-loading span { width:32px; height:32px; border:3px solid #dbe8f7; border-top-color:#0759d3; border-radius:50%; animation:dashboard-spin .8s linear infinite; }
.dashboard-loading p { margin:0; color:#708098; }
@keyframes dashboard-spin { to { transform:rotate(360deg); } }

.dashboard-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.dashboard-kpi { --tile-accent:#0759d3; --tile-soft:#eaf3ff; position:relative; display:grid; grid-template-columns:38px minmax(0,1fr) auto; grid-template-rows:auto auto 1fr; column-gap:10px; min-width:0; min-height:137px; overflow:hidden; border:1px solid #d9e3ee; border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(16,48,84,.055); color:#0d1b35; padding:15px 16px 14px; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.dashboard-kpi::before { position:absolute; top:0; right:0; left:0; height:3px; background:var(--tile-accent); content:""; }
.dashboard-kpi:hover { border-color:color-mix(in srgb,var(--tile-accent) 35%,#d9e3ee); box-shadow:0 13px 28px rgba(16,48,84,.1); transform:translateY(-1px); }
.dashboard-kpi-icon { display:grid; width:36px; height:36px; grid-row:1/3; place-items:center; border-radius:10px; background:var(--tile-soft); color:var(--tile-accent); font-size:.75rem; font-style:normal; font-weight:800; }
.dashboard-team-icon { font-size:.82rem; }
.dashboard-kpi-label { align-self:center; overflow:hidden; color:#52647d; font-size:.76rem; font-weight:690; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-kpi > strong { grid-column:2/4; margin-top:5px; color:#0d1b35; font-size:1.65rem; line-height:1.05; letter-spacing:-.035em; }
.dashboard-kpi > strong.dashboard-money { font-size:1.27rem; white-space:nowrap; }
.dashboard-kpi > strong.dashboard-person-name { display:-webkit-box; overflow:hidden; font-size:1rem; line-height:1.2; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.dashboard-kpi small { grid-column:1/4; align-self:end; overflow:hidden; margin-top:11px; color:#708098; font-size:.7rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-kpi small b { color:#34465f; }
.dashboard-kpi > i { align-self:center; color:#9caabd; font-size:1.15rem; font-style:normal; }
.dashboard-kpi-blue { --tile-accent:#0759d3; --tile-soft:#eaf3ff; }
.dashboard-kpi-team11 { --tile-accent:#1884e8; --tile-soft:#e8f4ff; }
.dashboard-kpi-team23 { --tile-accent:#7651d6; --tile-soft:#f0ebff; }
.dashboard-kpi-amber { --tile-accent:#b87500; --tile-soft:#fff4dc; }
.dashboard-kpi-red { --tile-accent:#c23a35; --tile-soft:#fff0ee; }
.dashboard-kpi-teal { --tile-accent:#087b7f; --tile-soft:#e6f8f6; }
.dashboard-kpi-green { --tile-accent:#087545; --tile-soft:#e9f8ef; }

.dashboard-workspace { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr); gap:16px; align-items:start; }
.dashboard-workspace > .panel { min-width:0; margin:0; padding:0; overflow:hidden; }
.dashboard-section-heading { display:flex; min-height:72px; align-items:center; justify-content:space-between; gap:18px; padding:15px 18px; border-bottom:1px solid #e2e9f1; }
.dashboard-section-heading > div { display:grid; gap:2px; }
.dashboard-section-heading > div > span { color:#708098; font-size:.65rem; font-weight:780; letter-spacing:.1em; }
.dashboard-section-heading h2 { margin:0; font-size:1.12rem; letter-spacing:-.02em; }
.dashboard-section-heading a { color:#0759d3; font-size:.76rem; font-weight:690; text-decoration:none; white-space:nowrap; }
.dashboard-section-heading a b { font-size:1rem; }

.dashboard-schedule { display:grid; }
.dashboard-schedule-row { display:grid; grid-template-columns:60px 54px minmax(150px,1.05fr) minmax(180px,1.3fr) auto 12px; gap:12px; align-items:center; min-height:68px; border-bottom:1px solid #e5ebf2; color:#0d1b35; padding:9px 16px; text-decoration:none; }
.dashboard-schedule-row:last-child { border-bottom:0; }
.dashboard-schedule-row:hover { background:#f7faff; }
.dashboard-schedule-time { color:#1d3553; font-size:.79rem; font-weight:760; }
.dashboard-schedule-team { display:inline-flex; min-height:27px; align-items:center; justify-content:center; border-radius:8px; background:#e8f4ff; color:#0968bd; padding:4px 7px; font-size:.68rem; font-weight:780; }
.dashboard-schedule-team.team-23 { background:#f0ebff; color:#6840c2; }
.dashboard-schedule-team.team-both { background:linear-gradient(115deg,#e8f4ff 0 50%,#f0ebff 50% 100%); color:#38486c; }
.dashboard-schedule-order { display:grid; min-width:0; gap:2px; }
.dashboard-schedule-order strong { overflow:hidden; font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-schedule-order small { overflow:hidden; color:#708098; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-schedule-task { overflow:hidden; color:#52647d; font-size:.77rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-schedule-status { display:inline-flex; border-radius:999px; background:#eaf3ff; color:#0759b8; padding:5px 9px; font-size:.66rem; font-weight:730; white-space:nowrap; }
.dashboard-schedule-status.done { background:#e9f8ef; color:#087545; }
.dashboard-schedule-row > b { color:#9baabd; font-size:1.05rem; }
.dashboard-show-all { display:block; border-top:1px solid #e5ebf2; color:#0759d3; padding:12px 16px; text-align:center; text-decoration:none; font-size:.75rem; font-weight:680; }

.dashboard-empty,.dashboard-all-clear { display:flex; min-height:188px; align-items:center; justify-content:center; gap:14px; padding:26px; text-align:left; }
.dashboard-empty > span,.dashboard-all-clear > span { display:grid; width:43px; height:43px; flex:0 0 43px; place-items:center; border-radius:13px; background:#eaf3ff; color:#0759d3; font-size:1.15rem; font-weight:760; }
.dashboard-empty strong,.dashboard-all-clear strong { font-size:.9rem; }
.dashboard-empty p,.dashboard-all-clear p { max-width:360px; margin:4px 0 0; color:#708098; font-size:.75rem; line-height:1.45; }
.dashboard-all-clear > span { background:#e9f8ef; color:#087545; }

.dashboard-attention-count { display:grid; min-width:30px; height:30px; place-items:center; border-radius:999px; background:#eef3f8; color:#52647d; font-size:.75rem; font-weight:750; }
.dashboard-attention-list { display:grid; padding:7px 12px 12px; }
.dashboard-attention-item { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:59px; border-bottom:1px solid #e5ebf2; color:#0d1b35; padding:9px 4px; text-decoration:none; }
.dashboard-attention-item:last-child { border-bottom:0; }
.dashboard-attention-item > span:first-child { display:grid; width:30px; height:30px; place-items:center; border-radius:9px; background:#eef5ff; color:#0759d3; font-size:.76rem; font-weight:820; }
.dashboard-attention-item.warning > span:first-child { background:#fff4dc; color:#9a6700; }
.dashboard-attention-item.danger > span:first-child { background:#fff0ee; color:#b3261e; }
.dashboard-attention-item > span:nth-child(2) { display:grid; min-width:0; gap:2px; }
.dashboard-attention-item strong { overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-attention-item small { overflow:hidden; color:#708098; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-attention-item > b { color:#a1afbf; font-size:1rem; }

.dashboard-finance-panel { grid-column:1/-1; }
.dashboard-finance-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#e2e9f1; border-bottom:1px solid #e2e9f1; }
.dashboard-finance-values > div { display:grid; gap:4px; background:#fff; padding:16px 18px; }
.dashboard-finance-values span { color:#708098; font-size:.7rem; }
.dashboard-finance-values strong { font-size:1.17rem; }
.dashboard-finance-values .positive strong { color:#087545; }
.dashboard-finance-values .negative strong { color:#b3261e; }
.dashboard-finance-bars { display:grid; gap:10px; padding:16px 18px 8px; }
.dashboard-finance-bars > div { display:grid; grid-template-columns:58px minmax(0,1fr); gap:10px; align-items:center; }
.dashboard-finance-bars span { color:#52647d; font-size:.69rem; font-weight:680; }
.dashboard-finance-bars i { display:block; height:10px; overflow:hidden; border-radius:999px; background:#edf1f5; }
.dashboard-finance-bars b { display:block; height:100%; border-radius:inherit; }
.dashboard-finance-bars .revenue { background:linear-gradient(90deg,#0759d3,#38a1e8); }
.dashboard-finance-bars .cost { background:#34475c; }
.dashboard-finance-panel > p { margin:0; color:#708098; padding:3px 18px 15px; font-size:.7rem; }

.dashboard-year-panel { grid-column:1/-1; }
.dashboard-year-revenue { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-bottom:1px solid #e2e9f1; background:#f7f9fc; }
.dashboard-year-revenue > div { display:grid; gap:4px; min-width:0; border-right:1px solid #e2e9f1; padding:13px 18px; }
.dashboard-year-revenue > div:last-child { border-right:0; }
.dashboard-year-revenue span { color:#708098; font-size:.68rem; }
.dashboard-year-revenue strong { overflow:hidden; color:#1d3553; font-size:.88rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-year-note { margin:0; color:#708098; padding:3px 18px 15px; font-size:.7rem; }

@media(max-width:1350px){
    .dashboard-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media(max-width:1050px){
    .dashboard-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dashboard-workspace { grid-template-columns:1fr; }
    .dashboard-finance-panel { grid-column:auto; }
}

@media(max-width:760px){
    .dashboard-page { gap:14px; }
    .dashboard-heading { align-items:stretch; flex-direction:column; }
    .dashboard-heading h1 { font-size:1.65rem; }
    .dashboard-new-order { justify-content:center; }
    .dashboard-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    .dashboard-kpi { min-height:132px; padding:13px; }
    .dashboard-kpi > strong.dashboard-money { font-size:1rem; }
    .dashboard-kpi small { white-space:normal; }
    .dashboard-schedule-row { grid-template-columns:52px 48px minmax(0,1fr) auto 10px; gap:8px; }
    .dashboard-schedule-task { display:none; }
    .dashboard-section-heading { align-items:flex-start; flex-direction:column; gap:7px; }
    .dashboard-finance-values { grid-template-columns:1fr; }
    .dashboard-year-revenue { grid-template-columns:1fr 1fr; }
    .dashboard-year-revenue > div { border-bottom:1px solid #e2e9f1; }
}

@media(max-width:430px){
    .dashboard-kpi-grid { grid-template-columns:1fr; }
}

@media(prefers-reduced-motion:reduce){
    .dashboard-kpi { transition:none; }
    .dashboard-loading span { animation:none; }
}
