
/* CONTEC V34.2 – Visual Operations Design */
:root{
 --co-bg:#f3f6f8;--co-card:#fff;--co-ink:#132f3d;--co-muted:#667d88;
 --co-line:#dbe4e8;--co-blue:#1687a7;--co-green:#29a36a;--co-yellow:#e6ad25;--co-red:#d9534f;
 --co-radius:12px;--co-shadow:0 5px 18px rgba(23,55,70,.055);
}
body{background:var(--co-bg)!important}
main{background:var(--co-bg)!important}

/* Remove duplicated horizontal module navigation on desktop.
   Sidebar remains the single primary navigation. */
@media(min-width:1000px){.workspace-quickbar{display:none!important}}
.topbar{min-height:76px!important;background:#fff!important;border-bottom:1px solid var(--co-line)!important}
.topbar h1{font-size:27px!important;letter-spacing:-.025em!important}
.topbar p{font-size:13px!important;color:var(--co-muted)!important}
.global-search-wrap input{min-width:360px!important;background:#f7f9fa!important}

/* Every application view gets one calm working canvas. */
.view{
 max-width:1560px!important;
 margin:0 auto!important;
 padding:24px 28px 44px!important;
}
.view>.panel,.view>.card,.view>section,.view>.box{margin-bottom:14px!important}
.view .panel,.view .card,.view .box{
 border:1px solid var(--co-line)!important;
 box-shadow:none!important;
 border-radius:var(--co-radius)!important;
 background:#fff!important;
}
.view .panel:hover,.view .card:hover{box-shadow:var(--co-shadow)!important}

/* Reduce visual noise from old nested containers. */
.view .panel .panel,.view .card .card{
 box-shadow:none!important;border-color:#e7edef!important;
}
.panel-head,.section-head,.card-header{
 display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;
 border-bottom:1px solid #edf1f3!important;padding-bottom:11px!important;margin-bottom:12px!important;
}
.panel-head h2,.panel-head h3,.section-head h2,.section-head h3{margin:0!important;color:var(--co-ink)!important}
.panel-head p,.section-head p{margin:3px 0 0!important;color:var(--co-muted)!important}

/* Buttons – one hierarchy */
button,.btn{box-shadow:none!important}
button.primary,.btn.primary,.primary{
 background:var(--co-blue)!important;border-color:var(--co-blue)!important;color:#fff!important;
}
button:not(.primary):not(.danger),.btn:not(.primary):not(.danger){
 background:#fff;border-color:#cfdce1;color:var(--co-ink);
}

/* Tabs / filters */
.tabs,[class*="tabs"],.filterbar,.toolbar{
 background:#f7f9fa!important;border-radius:9px!important;
}
.tabs button,[role="tab"],[class*="tab"] button{
 border:0!important;background:transparent!important;
}
.tabs button.active,[role="tab"].active,[class*="tab"] button.active{
 background:#fff!important;color:var(--co-blue)!important;box-shadow:0 1px 5px rgba(20,50,65,.08)!important;
}

/* Tables: visually closer to professional portfolio dashboards. */
table{border-collapse:separate!important;border-spacing:0!important}
table th{background:#f5f8f9!important;color:#536d79!important;font-weight:800!important;border-bottom:1px solid var(--co-line)!important}
table td{border-bottom:1px solid #edf1f3!important}
table tr:hover td{background:#fafcfc!important}

/* Dashboard: remove duplicated menu cards and quick access.
   Keep KPI + visual analytics + work list. */
#dashboard .v34-command,
#dashboard .v34-workspaces,
#dashboard .v34-beosys-boundary,
#dashboard .pro-shortcuts{display:none!important}
#dashboard .pro-dashboard-head{
 margin-bottom:16px!important;padding-bottom:16px!important;
}
#dashboard .pro-kpi-grid{margin-bottom:14px!important}
#dashboard .pro-kpi{
 min-height:100px!important;padding:16px 17px!important;
 border-top:3px solid #d9e6ea!important;
}
#dashboard .pro-kpi:nth-child(1){border-top-color:var(--co-blue)!important}
#dashboard .pro-kpi:nth-child(2){border-top-color:var(--co-green)!important}
#dashboard .pro-kpi:nth-child(3){border-top-color:#6d7bd9!important}
#dashboard .pro-kpi:nth-child(4){border-top-color:var(--co-yellow)!important}
#dashboard .pro-kpi b{font-size:30px!important}

/* Visual analytics */
.v342-analytics{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;
}
.v342-chart-card{
 min-height:230px;background:#fff;border:1px solid var(--co-line);border-radius:var(--co-radius);padding:16px;
}
.v342-chart-card.v342-wide{grid-column:span 2}
.v342-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:16px}
.v342-card-head span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--co-blue)}
.v342-card-head h3{font-size:17px!important;margin:3px 0 0!important}
.v342-card-head>b{font-size:24px;color:var(--co-ink)}
.v342-card-head small{font-size:12px!important;color:var(--co-muted)}

.v342-donut-wrap{display:flex;align-items:center;justify-content:center;gap:24px;padding-top:2px}
.v342-donut{width:130px;height:130px;border-radius:50%;background:#edf2f4;position:relative}
.v342-donut:after{content:"";position:absolute;inset:26px;background:#fff;border-radius:50%}
.v342-donut>div{position:absolute;inset:0;z-index:2;display:grid;place-content:center;text-align:center}
.v342-donut b{font-size:26px}.v342-donut span{font-size:11px;color:var(--co-muted)}
.v342-legend{min-width:120px;display:grid;gap:9px}
.v342-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;font-size:12px}
.v342-legend i{width:8px;height:8px;border-radius:50%}.is-blue{background:var(--co-blue)}.is-green{background:var(--co-green)}.is-yellow{background:var(--co-yellow)}.is-red{background:var(--co-red)}

.v342-bars{display:grid;gap:13px;padding-top:4px}
.v342-bars>div{display:grid;grid-template-columns:65px 1fr 22px;gap:9px;align-items:center}
.v342-bars label{font-size:12px!important;color:var(--co-muted)}
.v342-bars span{height:10px;background:#edf2f4;border-radius:8px;overflow:hidden}
.v342-bars i{display:block;height:100%;background:var(--co-blue);border-radius:8px}
.v342-bars b{font-size:12px;text-align:right}

.v342-week-chart{height:150px;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;align-items:end;border-bottom:1px solid var(--co-line);padding:0 10px}
.v342-week-chart>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.v342-week-chart i{width:54%;min-height:8px;background:linear-gradient(180deg,#37a9c1,#1687a7);border-radius:5px 5px 0 0}
.v342-week-chart span,.v342-week-chart b{font-size:11px;color:var(--co-muted)}.v342-week-chart b{color:var(--co-ink)}

.v342-resource{padding-top:22px}
.v342-gauge{height:16px;border-radius:10px;background:#eaf0f2;overflow:hidden}.v342-gauge i{display:block;height:100%;width:0;background:linear-gradient(90deg,#29a36a,#1687a7);border-radius:10px}
.v342-resource-copy{margin-top:19px}.v342-resource-copy b{display:block;font-size:17px}.v342-resource-copy span{display:block;font-size:12px;margin-top:4px;color:var(--co-muted)}

/* Today list becomes the main operational table/card. */
#dashboard .pro-dashboard-grid{grid-template-columns:1fr!important}
#dashboard .pro-dashboard-grid>.panel:first-child{min-height:270px!important}
.pro-today-item{display:grid!important;grid-template-columns:100px 1fr 120px!important;min-height:54px!important;border-bottom:1px solid #edf1f3!important;border-radius:0!important}
.pro-today-item:hover{background:#f8fbfc!important}

/* All operational modules: establish consistent KPI rows. */
#projectplanner .project-kpis,
#service [class*="kpi"],
#machinepark [class*="kpi"],
#rental [class*="kpi"],
#inventory [class*="kpi"]{gap:10px!important}

/* Project planner: reduce repeated boxes and emphasize portfolio/table. */
#projectplanner>section:first-of-type{margin-bottom:10px!important}
#projectplanner .sd-process-strip{background:#fff!important;border:1px solid var(--co-line)!important}
#projectplanner [class*="kpi"]{box-shadow:none!important}
#projectplanner table{background:#fff!important}

/* Standalone pages inherit the same visual rhythm. */
.page-shell,.order-shell,.project-shell,.report-shell,.workflow-shell{
 max-width:1500px!important;margin:0 auto!important;
}
body:not(:has(.sidebar)) main{max-width:1500px;margin:0 auto}

/* Responsive */
@media(max-width:1250px){
 .v342-analytics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .v342-chart-card.v342-wide{grid-column:span 2}
 .view{padding:20px}
}
@media(max-width:760px){
 .v342-analytics{grid-template-columns:1fr}
 .v342-chart-card.v342-wide{grid-column:auto}
 .v342-donut-wrap{flex-direction:column}
 .global-search-wrap input{min-width:0!important}
 .view{padding:12px}
}
