.advanced-nav{display:none!important}.advanced-open .advanced-nav{display:flex!important}.nav-more{border:1px dashed #d9d0e5;background:#faf8fc;color:#5e4672;text-align:left;padding:10px 13px;border-radius:10px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:750}.nav-more span:first-child{width:20px;font-size:16px}.nav-more b{margin-left:auto}.advanced-open .nav-more b{transform:rotate(180deg)}.central-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.central-status-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:-8px 0 16px}.central-status-line>span:last-child{color:#706879;font-size:12px}.central-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.central-kpis>div{display:flex;flex-direction:column;gap:5px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.central-kpis span{font-size:10px;color:var(--muted);text-transform:uppercase}.central-kpis strong{font-size:20px}.central-kpis small{color:var(--muted);font-size:10px}.central-kpis .danger{border-color:#edaab4;background:#fff5f6}.central-kpis .danger strong{color:#bc3044}.central-kpis .warning{border-color:#ebca84;background:#fff8e9}.central-kpis .warning strong{color:#9b5d00}.central-kpis .good{border-color:#b8ddc5}.central-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:15px 0}.central-shortcuts>button{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;color:inherit}.central-shortcuts>button:hover{border-color:#9c7bd0;background:#faf7fd}.central-shortcuts>button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#eee8f7;color:#603392}.central-shortcuts>button div{display:flex;flex-direction:column;min-width:0}.central-shortcuts strong,.central-shortcuts small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.central-shortcuts small{color:var(--muted)}.central-shortcuts b{color:var(--purple)}.central-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.central-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.central-row>div{display:flex;flex-direction:column;gap:3px}.central-row small{color:var(--muted)}.central-row>span{font-weight:800;color:#603392}.central-row.alert>span{color:#b64835}.print-document header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:3px solid var(--purple)}.print-document header img{width:230px;height:auto}.print-document header>div:last-child{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.print-document header h2{margin:0 0 5px}.report-modal{width:min(1120px,100%)}.report-identity{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.report-identity>div,.report-kpis>div{display:flex;flex-direction:column;gap:4px;padding:11px;background:#f6f3f9;border-radius:8px}.report-identity small,.report-kpis span{font-size:9px;color:var(--muted)}.report-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.report-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.report-columns>section{padding:12px;border:1px solid var(--line);border-radius:9px}.site-report>h3,.reception-document>h3,.order-document>h3{color:var(--purple);margin:20px 0 10px}.site-report footer{margin-top:25px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.reception-fields{margin:18px 0}.reception-identity{margin-bottom:18px}.reception-notes{margin-top:18px}.reception-statement{padding:12px;background:#f7f4fa;font-size:11px;line-height:1.5}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.signature-grid>div{min-height:110px;padding:14px;border:1px solid #aaa;border-radius:8px;display:flex;flex-direction:column;justify-content:space-between}.signature-grid span{font-size:10px;color:var(--muted)}.order-brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important}.order-brand small{font-size:9px;font-weight:800}.order-parties{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.order-parties>div{display:flex;flex-direction:column;padding:13px;background:#f6f3f9}.order-description{min-height:70px;padding:14px;border:1px solid var(--line);border-radius:8px}.order-totals{width:330px;max-width:100%;margin:18px 0 18px auto;display:grid}.order-totals span{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid var(--line)}.order-totals span:last-child{font-size:16px;background:#f1ebf8}.order-conditions{font-size:11px;line-height:1.5}@media(max-width:1150px){.central-kpis{grid-template-columns:repeat(3,1fr)}.central-shortcuts{grid-template-columns:repeat(3,1fr)}.report-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.central-title{align-items:flex-start;flex-direction:column}.central-head-actions{justify-content:flex-start}.central-kpis,.central-shortcuts{grid-template-columns:1fr 1fr}.central-grid{grid-template-columns:1fr}.report-identity,.report-columns{grid-template-columns:1fr 1fr}.sidebar .nav-more span:nth-child(2),.sidebar .nav-more b{display:none}.nav-more{justify-content:center;padding:10px}}@media(max-width:520px){.central-kpis,.central-shortcuts,.report-kpis,.report-identity,.report-columns,.signature-grid,.order-parties{grid-template-columns:1fr}.central-head-actions{display:grid;width:100%}.central-head-actions button{width:100%}}@media print{.report-modal{width:100%;max-height:none;overflow:visible;box-shadow:none;border-radius:0}.print-document{font-size:9pt}.print-document table{break-inside:auto}.print-document tr,.print-document article,.report-columns>section,.signature-grid{break-inside:avoid}.reception-fields .input,.reception-fields .select,.reception-notes .textarea{border:0!important;padding:2px 0;background:transparent}.print-document header img{width:210px}@page{size:A4;margin:12mm}}
.print-document{color:#17152d;background:#fff}.print-document header>img{width:220px!important;height:120px;object-fit:cover;object-position:center 48%;display:block}.site-report>h3{border-left:4px solid var(--purple);padding-left:9px}.site-report .mini-table th{background:#f3eff8;color:#4b2a6b}.site-report .mini-table tr:nth-child(even) td{background:#faf9fc}.site-report .report-kpis>div{border-top:3px solid #6d36a8;background:#f8f6fa}.site-report .report-columns>section{border-top:3px solid #6d36a8;background:#fff}.site-report ul{margin:8px 0 0;padding:12px 12px 12px 28px;background:#fff8e9;border:1px solid #ebcf94;border-radius:8px}
@media print{
  html,body{width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
  body{margin:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .modal-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;display:block!important;padding:0!important;margin:0!important;background:#fff!important}
  .modal,.report-modal,.modal-body{position:static!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
  .print-document{width:100%!important;height:auto!important;overflow:visible!important;margin:0!important;padding:0!important;background:#fff!important}
  .print-document header{min-height:112px!important;padding:0 0 10px!important;margin:0 0 13px!important;border-bottom:3px solid #5523a1!important;align-items:center!important;break-inside:avoid!important}
  .print-document header>img{width:195px!important;height:105px!important;object-fit:cover!important;object-position:center 48%!important}
  .print-document header h2{font-size:18pt!important;letter-spacing:.02em!important;color:#211739!important}
  .report-identity{margin:10px 0 14px!important;gap:5px!important;break-inside:avoid!important}
  .report-identity>div{padding:8px!important;background:#f4f1f7!important;border-radius:4px!important}
  .report-kpis{gap:5px!important;break-inside:avoid!important}
  .report-kpis>div{padding:8px!important;border-radius:3px!important;background:#faf9fb!important}
  .report-kpis strong{font-size:11pt!important}
  .site-report>h3{font-size:12pt!important;margin:15px 0 7px!important;break-after:avoid!important}
  .site-report .mini-table{font-size:8.5pt!important}
  .site-report .mini-table th,.site-report .mini-table td{padding:6px!important}
  .report-columns{gap:6px!important;margin-top:12px!important;break-inside:avoid!important}
  .report-columns>section{padding:8px!important;border-radius:4px!important;box-shadow:none!important}
  .report-columns h3{font-size:10pt!important;margin:0 0 6px!important}
  .report-columns p{margin:5px 0!important}
  .site-report footer{position:relative!important;margin-top:15px!important;padding-top:8px!important;text-align:center!important}
  *{scrollbar-width:none!important}
  *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  @page{size:A4 portrait;margin:10mm 11mm 12mm}
}
:root{
  --purple:#4a1ea8; --purple2:#7a2bd8; --magenta:#d62f9a; --orange:#ff8c1a; --ink:#131538; --muted:#666b80;
  --bg:#f7f7fb; --card:#fff; --line:#e8e8f0; --green:#4da36c; --red:#e34a5f; --blue:#3d66cf; --shadow:0 8px 25px rgba(31,26,63,.06);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink)} button,input,select,textarea{font:inherit} button{cursor:pointer}
.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:#fff;border-right:1px solid var(--line);padding:18px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand-wrap{height:125px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);margin-bottom:12px}.brand-logo{width:205px;height:auto}.nav-list{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#20233c;text-align:left;padding:13px 14px;border-radius:11px;display:flex;align-items:center;gap:12px;font-size:14px}.nav-item span:first-child{width:20px;font-size:18px}.nav-item:hover{background:#f6f0ff}.nav-item.active{background:linear-gradient(90deg,var(--purple),#6d31c4);color:#fff;box-shadow:0 8px 18px rgba(74,30,168,.2)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:14px}.profile{display:flex;align-items:center;gap:10px;padding:8px}.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--magenta));color:#fff;display:grid;place-items:center;font-weight:700}.profile strong{display:block;font-size:13px}.profile small{color:var(--muted)}.chev{margin-left:auto}
.main-area{flex:1;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;position:sticky;top:0;z-index:5}.breadcrumbs{font-size:20px;font-weight:750}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid var(--line);position:relative}.badge{position:absolute;right:-3px;top:-4px;background:var(--purple);color:#fff;border-radius:999px;font-size:10px;min-width:18px;height:18px;display:grid;place-items:center}.primary-btn{border:none;border-radius:10px;background:linear-gradient(100deg,var(--purple),var(--magenta),var(--orange));color:#fff;padding:11px 16px;font-weight:750}.content{padding:28px;max-width:1600px;margin:0 auto}.muted{color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-title h1,.section-title h2{margin:0}.section-title p{margin:6px 0 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.stat{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.stat-top{display:flex;gap:13px;align-items:center}.stat-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:20px;background:linear-gradient(135deg,var(--purple),var(--magenta))}.stat h3{margin:0;font-size:30px}.stat small{display:block;color:#3c4058;margin-top:2px}.stat-link{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);color:var(--purple);font-weight:700;font-size:13px}.grid-3{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:16px;margin-top:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:18px}.panel h3{margin:0 0 16px}.task-list{display:flex;flex-direction:column}.task-row{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid #f0f0f4}.task-row:last-child{border-bottom:none}.date-pill{width:58px;height:58px;border-radius:11px;background:#f3edff;color:var(--purple);display:grid;place-items:center;text-align:center;font-weight:800}.date-pill small{display:block;font-size:10px}.task-main strong{display:block;font-size:13px}.task-main small{display:block;color:var(--muted);margin-top:3px}.calendar-wrap{overflow:hidden}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-cell{min-height:56px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;font-size:12px;position:relative}.calendar-cell .num{font-weight:700;color:#444}.cal-event{position:absolute;left:3px;right:3px;bottom:4px;border-radius:7px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.ev-purple{background:#ede3ff;color:#5b29b5}.ev-orange{background:#fff1de;color:#9e5300}.ev-green{background:#e3f5ea;color:#247448}.today{background:#f8f2ff}.dot-key{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#555b72;margin-top:12px}.dot{display:inline-flex;align-items:center;gap:6px}.dot i{width:8px;height:8px;border-radius:50%;display:inline-block}.redline{border-left:3px solid var(--red);padding-left:12px}.late{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #f0f0f4}.late:last-child{border-bottom:none}.late strong{font-size:13px}.late small{display:block;color:var(--muted);margin-top:3px}.late-badge{background:#fff0f2;color:var(--red);padding:6px 8px;border-radius:8px;height:max-content;font-size:11px;font-weight:700}.table-panel{margin-top:16px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 12px;border-bottom:1px solid #f0f0f4;text-align:left;font-size:13px}.table th{color:#73788a;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700;background:#f1f4f8}.status i{width:7px;height:7px;border-radius:50%;background:#8d8f9b}.status.green{background:#e8f7ee;color:#277548}.status.green i{background:#2f9d5f}.status.red{background:#fff0f2;color:#d9465c}.status.red i{background:#e34a5f}.status.purple{background:#f0e9ff;color:#6331bc}.status.purple i{background:#6c39cc}.empty{padding:30px;text-align:center;color:var(--muted)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.search{flex:1;min-width:220px}.input,.select,.textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#b79de8;box-shadow:0 0 0 3px #efe8fb}.secondary-btn{border:1px solid var(--line);background:#fff;padding:10px 13px;border-radius:10px}.danger-btn{border:1px solid #ffd6dc;background:#fff5f6;color:var(--red);padding:10px 13px;border-radius:10px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field label{display:block;font-size:12px;color:#656a7d;margin-bottom:6px}.full{grid-column:1/-1}.pill-list{display:flex;flex-wrap:wrap;gap:7px}.pill{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#faf9fe;font-size:12px}.gantt-wrap{overflow:auto}.gantt{min-width:1850px}.gantt-head,.gantt-row{display:grid;grid-template-columns:250px repeat(30,1fr)}.gantt-head>div,.gantt-row>div{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:9px 7px;font-size:11px}.gantt-head{background:#faf9fc}.gantt-row .label{font-weight:650;background:#fff}.bar{height:24px;border-radius:7px;background:linear-gradient(90deg,var(--purple),var(--magenta),var(--orange));box-shadow:0 4px 9px rgba(97,41,178,.18)}.bar.green{background:linear-gradient(90deg,#4d9c6b,#7acb97)}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,14,25,.45);display:grid;place-items:center;padding:20px;z-index:20}.modal{background:#fff;border-radius:16px;width:min(720px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 70px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:15px 20px;border-top:1px solid var(--line)}.close{border:none;background:#f4f4f8;border-radius:8px;width:34px;height:34px}.small-note{font-size:11px;color:var(--muted)}.ppsps-section{padding:15px 0;border-bottom:1px solid var(--line)}.ppsps-section:last-child{border-bottom:none}.risk-item{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;align-items:start;padding:8px 0}.mini-table{width:100%;border-collapse:collapse}.mini-table td,.mini-table th{border-bottom:1px solid var(--line);padding:8px;font-size:12px;text-align:left}.notice{background:#fff8ed;border:1px solid #f3dfbc;color:#7a4f00;border-radius:11px;padding:12px;font-size:12px;margin-bottom:15px}.choice-list{display:grid;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#faf9fe;max-height:280px;overflow:auto}.choice-group{padding-bottom:10px;border-bottom:1px solid #e8e5ef}.choice-group:last-child{padding-bottom:0;border-bottom:0}.choice-group-title{margin-bottom:7px;font-size:11px;font-weight:750;color:#625c78;text-transform:uppercase;letter-spacing:.03em}.choice-options{display:flex;flex-wrap:wrap;gap:8px}.choice-option{display:inline-flex!important;align-items:center;gap:6px;margin:0!important;padding:7px 9px;border:1px solid #ded8eb;border-radius:999px;background:#fff;color:#343048!important;font-size:12px!important;cursor:pointer}.choice-option:has(input:checked){border-color:#8363c8;background:#f1ebff;color:#4a1ea8!important}.choice-option input{accent-color:var(--purple)}.choice-custom{margin-top:9px}.gantt-task-name{display:flex;align-items:center;justify-content:space-between;gap:8px}.gantt-edit{border:1px solid #ded8eb;border-radius:6px;background:#fff;color:var(--purple);padding:3px 6px;font-size:10px;font-weight:700;white-space:nowrap}.gantt-edit:hover{background:#f2edff}
@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.grid-3{grid-template-columns:1fr 1fr}.grid-3 .panel:last-child{grid-column:1/-1}}@media(max-width:900px){.sidebar{width:78px;padding:12px 8px}.brand-logo{width:62px}.nav-item span:last-child,.profile div:not(.avatar),.profile .chev{display:none}.nav-item{justify-content:center}.content{padding:18px}.topbar{padding:0 18px}.cards{grid-template-columns:1fr 1fr}.grid-3,.two-col{grid-template-columns:1fr}}@media(max-width:620px){.cards{grid-template-columns:1fr}.top-actions .icon-btn{display:none}.breadcrumb{font-size:16px}.content{padding:13px}.form-grid{grid-template-columns:1fr}}
.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f7f8f3,#eef4f0);padding:24px}
.login-card{width:min(430px,100%);background:#fff;border:1px solid #e7e8e5;border-radius:24px;padding:34px;box-shadow:0 20px 60px rgba(25,40,30,.10)}
.login-logo{width:190px;height:auto;display:block;margin:0 auto 22px}.login-card h1{text-align:center;margin:0 0 6px}.login-card>p{text-align:center;color:#6f746d;margin:0 0 24px}.login-card form{display:grid;gap:10px}.login-card label{font-size:13px;font-weight:700;color:#42473f}.login-error{min-height:20px;color:#b13d3d;font-size:13px;text-align:center;margin-top:4px}
.category-grid{display:grid;gap:10px}.category-card{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#faf9fe}.category-card .pill-list{grid-column:1/-1}
.assignment-section{display:grid;align-content:start;gap:8px}.assignment-section h4{margin:0}.choice-assignment{display:grid;grid-template-columns:1fr minmax(150px,.8fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.choice-assignment .select{padding:8px 9px}
.site-back{margin-bottom:14px}.detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.detail-stat{display:grid;gap:7px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.detail-stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.detail-stat strong{font-size:13px}.detail-task-list{display:grid}.detail-task{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-task:last-child{border-bottom:0}.detail-task .pill-list{margin-top:8px}.detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}@media(max-width:900px){.detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.detail-stats{grid-template-columns:1fr}.detail-task{flex-direction:column}}
.progress-panel{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:16px}.progress-track{grid-column:1/-1;height:10px;overflow:hidden;border-radius:999px;background:#eee9f7}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--magenta),var(--orange))}.task-status{padding:6px 9px;border-radius:999px;background:#f1f1f5;color:#56586a;font-size:11px;font-weight:700}.task-status.doing{background:#f0e9ff;color:#6331bc}.task-status.done{background:#e8f7ee;color:#277548}
.ppsps-card{align-items:center}.ppsps-score{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:12px;background:#f1ebff;color:var(--purple);font-weight:800}.ppsps-card .task-main{flex:1}.ppsps-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.ppsps-checklist{display:grid;gap:10px;color:#34374d;font-size:13px}.ppsps-checklist span{padding:10px;border-radius:9px;background:#f7f4fc}.ppsps-modal{width:min(1120px,100%)}.ppsps-document{color:#202236}.ppsps-heading{display:flex;justify-content:space-between;gap:20px;padding:18px;border:2px solid var(--ink);border-radius:12px}.ppsps-heading h2{margin:5px 0}.ppsps-kicker{font-size:11px;font-weight:850;letter-spacing:.05em}.ppsps-version{width:150px;display:grid;align-content:start;gap:5px}.ppsps-version label{font-size:11px;font-weight:700}.ppsps-version small{color:var(--muted)}.ppsps-section h4{margin:0 0 13px;color:var(--purple)}.ppsps-fields{margin-top:14px}.ppsps-table-wrap{overflow:auto}.ppsps-risk-table{min-width:820px}.ppsps-risk-table th:nth-child(1){width:20%}.ppsps-risk-table th:nth-child(2){width:23%}.ppsps-risk-table th:nth-child(3){width:35%}.ppsps-risk-table th:nth-child(4){width:22%}.ppsps-missing{color:#bd3d50;font-size:12px;font-weight:700}.ppsps-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ppsps-summary strong{display:block;margin-bottom:9px}.ppsps-emergency{margin-top:12px;padding:12px;border-radius:9px;background:#fff1f2;color:#9b2435}.ppsps-signature{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.ppsps-signature>div{min-height:105px;padding:14px;border:1px solid var(--line);border-radius:10px;font-size:12px}.modal-foot{position:sticky;bottom:0;background:#fff;z-index:2}
@media(max-width:700px){.ppsps-heading,.ppsps-summary,.ppsps-signature{grid-template-columns:1fr;display:grid}.ppsps-version{width:100%}}
@media print{body *{visibility:hidden!important}.modal-backdrop,.modal-backdrop *{visibility:visible!important}.modal-backdrop{position:absolute;inset:0;display:block;padding:0;background:#fff}.ppsps-modal{width:100%;max-height:none;overflow:visible;box-shadow:none;border-radius:0}.modal-head,.modal-foot,.no-print{display:none!important}.modal-body{padding:0}.ppsps-document{font-size:10pt}.ppsps-section{break-inside:avoid}.ppsps-heading{break-inside:avoid}.input,.textarea{border:0!important;box-shadow:none!important;padding:3px 0;background:transparent}.ppsps-risk-table{min-width:0}.ppsps-signature{break-inside:avoid}@page{size:A4;margin:12mm}}

/* Lisibilité des risques et EPI dans les colonnes étroites du PPSPS. */
.ppsps-risk-table{table-layout:fixed}
.ppsps-risk-table th:nth-child(1){width:20%}
.ppsps-risk-table th:nth-child(2){width:24%}
.ppsps-risk-table th:nth-child(3){width:31%}
.ppsps-risk-table th:nth-child(4){width:25%}
.ppsps-risk-table td{vertical-align:top;line-height:1.45;overflow-wrap:anywhere}
.ppsps-risk-table .pill{display:inline-block;margin:3px 2px;padding:5px 7px;line-height:1.25;white-space:normal;vertical-align:top}
@media print{
  .ppsps-risk-table{min-width:0;table-layout:fixed}
  .ppsps-risk-table tr{break-inside:avoid;page-break-inside:avoid}
  .ppsps-risk-table td,.ppsps-risk-table th{padding:8px 6px}
  .ppsps-risk-table .pill{margin:2px 1px;padding:4px 5px;font-size:9pt;line-height:1.3}
}

.expense-toolbar{display:grid;grid-template-columns:minmax(250px,1fr) minmax(320px,1fr);gap:18px;margin-bottom:16px}.expense-budget-input{display:flex;gap:8px}.expense-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.expense-kpi{display:grid;gap:7px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.expense-kpi span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.expense-kpi strong{font-size:21px}.expense-kpi.expense-over{border-color:#f2abb5;background:#fff5f6}.expense-kpi.expense-over strong{color:var(--red)}.expense-list-head{gap:15px}.expense-list-head h3{margin-bottom:3px}.expense-filters{display:flex;gap:8px}.expense-filters .select{min-width:170px}.expense-table-wrap{overflow:auto}.expense-table-wrap table{min-width:1050px}.expense-category{display:inline-block;padding:6px 8px;border-radius:8px;background:#f2edff;color:#5b2baa;font-size:11px;font-weight:700}.expense-actions{display:flex;gap:6px}.expense-actions .secondary-btn,.expense-actions .danger-btn{padding:7px 9px;font-size:11px}.expense-calculated{background:#f7f7fb;font-weight:750}
@media(max-width:1100px){.expense-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.expense-toolbar{grid-template-columns:1fr}.expense-kpis{grid-template-columns:1fr 1fr}.expense-list-head,.expense-filters,.expense-budget-input{align-items:stretch;flex-direction:column}.expense-filters{display:grid}.expense-filters .select{min-width:0}}
.expense-toolbar{grid-template-columns:minmax(230px,1fr) minmax(210px,.7fr) minmax(150px,.45fr) auto;align-items:end}.expense-save-settings{height:42px}.expense-alert{display:flex;align-items:center;gap:13px;margin:14px 0;padding:14px 16px;border-radius:12px;border:1px solid}.expense-alert strong{white-space:nowrap}.expense-alert.safe{background:#edf8f1;border-color:#b9e2c8;color:#246640}.expense-alert.warning{background:#fff8e8;border-color:#f0d28d;color:#7a5200}.expense-alert.danger{background:#fff0f2;border-color:#f0a8b3;color:#a52f41}.expense-kpi small{color:var(--muted);font-size:10px}.expense-drift{margin-top:16px}.expense-drift-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.expense-drift-head h3{margin:0 0 4px}.expense-drift-head>strong{font-size:24px}.expense-gauge{height:18px;position:relative;overflow:hidden;margin:18px 0 12px;border-radius:999px;background:#eef0f4}.expense-gauge i{position:absolute;top:0;height:100%}.expense-gauge .actual,.expense-legend i.actual{background:#4da36c}.expense-gauge .committed,.expense-legend i.committed{background:#7350c2}.expense-gauge .planned,.expense-legend i.planned{background:#f1a340}.expense-legend{display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}.expense-legend span{display:flex;align-items:center;gap:6px}.expense-legend i{width:10px;height:10px;border-radius:50%}.expense-legend .overrun{margin-left:auto;color:var(--red);font-weight:800}.expense-analysis{margin-top:16px}.expense-category-row{display:grid;grid-template-columns:minmax(115px,.7fr) 1fr auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.expense-category-row:last-child{border-bottom:0}.expense-category-row small{display:block;color:var(--muted);margin-top:2px}.expense-category-bar{height:8px;overflow:hidden;border-radius:999px;background:#eee9f7}.expense-category-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--magenta))}.expense-explain>div{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:10px;background:#edf8f1}.expense-explain>div strong{font-size:20px;color:#246640}.expense-explain p{line-height:1.55;color:var(--muted);font-size:13px}
@media(max-width:1050px){.expense-toolbar{grid-template-columns:1fr 1fr}.expense-save-settings{align-self:end}}
@media(max-width:700px){.expense-toolbar{grid-template-columns:1fr}.expense-alert{align-items:flex-start;flex-direction:column}.expense-kpis{grid-template-columns:1fr}.expense-legend .overrun{margin-left:0}.expense-category-row{grid-template-columns:1fr auto}.expense-category-bar{grid-column:1/-1}}
.expense-vat-summary{padding:10px 12px;border-radius:9px;background:#f7f4fc;color:var(--purple);font-size:12px;font-weight:700}
.expense-head-actions{display:flex;gap:9px}.expense-portfolio{margin-bottom:16px}.expense-portfolio .section-title{margin-bottom:12px}.expense-portfolio .section-title h3{margin:0 0 3px}.expense-portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.expense-site-card{display:grid;gap:5px;text-align:left;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fafafe;color:var(--ink)}.expense-site-card:hover,.expense-site-card.active{border-color:#9d7ddd;box-shadow:0 0 0 2px #eee7fb}.expense-site-card span{font-size:12px;font-weight:750}.expense-site-card strong{font-size:18px}.expense-site-card small{color:var(--muted)}.expense-site-card em{font-style:normal;font-size:10px;font-weight:800;color:var(--red)}.expense-site-card.warning{background:#fff9ed;border-color:#edcf8b}.expense-site-card.danger{background:#fff3f5;border-color:#eba6b0}
@media(max-width:1100px){.expense-portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.expense-head-actions{flex-direction:column}.expense-portfolio-grid{grid-template-columns:1fr}}
.document-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.document-toolbar{display:grid;grid-template-columns:1fr 240px 220px;gap:9px;margin-bottom:15px}.document-table-wrap{overflow:auto}.document-table-wrap table{min-width:900px}.document-name{display:flex;align-items:flex-start;gap:10px}.document-name strong,.document-name small{display:block}.document-name small{margin-top:3px;color:var(--muted)}.document-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:10px;background:#f1ebff;color:var(--purple);font-size:11px;font-weight:900}.document-download{text-decoration:none;color:inherit}.document-drop{display:grid!important;justify-items:center;gap:5px;padding:24px!important;border:2px dashed #cfc4e6;border-radius:12px;background:#faf8ff;text-align:center;cursor:pointer}.document-drop:hover{border-color:var(--purple);background:#f6f1ff}.document-drop span{font-size:28px;color:var(--purple)}.document-drop small{color:var(--muted)}.document-upload-status{min-height:18px;color:var(--purple);font-size:12px;font-weight:700}
@media(max-width:900px){.document-kpis{grid-template-columns:1fr 1fr}.document-toolbar{grid-template-columns:1fr}}
@media(max-width:600px){.document-kpis{grid-template-columns:1fr}}
.commercial-head-actions{display:flex;gap:9px}.commercial-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.commercial-table-wrap{overflow:auto}.commercial-table-wrap table{min-width:1100px}.commercial-actions{display:flex;gap:5px;flex-wrap:wrap}.commercial-actions button{padding:7px 8px;font-size:10px}.commercial-due{color:var(--red);font-weight:800}.commercial-modal{width:min(1100px,100%)}.commercial-lines-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.commercial-line{display:grid;grid-template-columns:minmax(220px,2fr) 85px 100px 120px 90px 42px;gap:7px;padding:8px 0;border-bottom:1px solid var(--line)}.commercial-line .input,.commercial-line .select{padding:9px}.commercial-total-box{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap;padding:15px;border-radius:11px;background:#f7f4fc}.commercial-total-box span{display:grid;gap:3px;color:var(--muted);font-size:11px}.commercial-total-box strong{color:var(--ink);font-size:16px}.commercial-total-box .grand strong{color:var(--purple);font-size:21px}.commercial-preview{color:#202236}.commercial-preview-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px;border-bottom:3px solid var(--purple)}.commercial-preview-head small,.commercial-preview-head strong{display:block}.commercial-preview-head h2{margin:0;color:var(--purple)}.commercial-preview-head>div:last-child{text-align:right}.commercial-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0}.commercial-parties>div{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:10px}.commercial-parties small{color:var(--muted);font-weight:800}.commercial-preview-table{margin-top:20px}.commercial-preview-totals{display:grid;justify-content:end;gap:7px;margin:18px 0}.commercial-preview-totals span{display:flex;justify-content:space-between;gap:50px}.commercial-preview-totals .grand{padding-top:8px;border-top:2px solid var(--ink);font-size:18px;color:var(--purple)}.commercial-terms{margin-top:24px;padding:15px;border-radius:10px;background:#faf9fc;font-size:12px}.commercial-terms p{white-space:pre-wrap}.commercial-preview-table tr{break-inside:avoid}
@media(max-width:900px){.commercial-kpis{grid-template-columns:1fr 1fr}.commercial-line{grid-template-columns:1fr 1fr}.commercial-line [data-line-description]{grid-column:1/-1}}
@media(max-width:600px){.commercial-head-actions{flex-direction:column}.commercial-kpis{grid-template-columns:1fr}.commercial-parties{grid-template-columns:1fr}}
@media print{.commercial-modal{width:100%;max-height:none;overflow:visible;box-shadow:none;border-radius:0}.commercial-preview{font-size:10pt}.commercial-preview-table{min-width:0}.commercial-preview-head,.commercial-parties,.commercial-preview-table tr,.commercial-preview-totals,.commercial-terms{break-inside:avoid}}
.commercial-brand{display:grid;justify-items:start;gap:2px}.commercial-brand img{display:block;width:285px;height:150px;object-fit:cover;object-position:center center}.commercial-brand small{margin-top:-2px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#302653}.ppsps-brand{width:205px;display:grid;justify-items:center;align-content:center;align-self:center}.ppsps-logo{width:205px;height:108px;object-fit:cover;object-position:center center}.ppsps-brand strong{margin-top:-2px;font-size:8px;letter-spacing:.05em;white-space:nowrap;color:#302653}.ppsps-title{flex:1;align-self:center}.ppsps-heading{align-items:flex-start}
@media(max-width:700px){.ppsps-brand{width:160px}.ppsps-logo{width:160px;height:86px}.commercial-brand img{width:220px;height:116px}}
@media print{.commercial-brand img{width:245px;height:130px}.commercial-brand small{margin-top:-2px;font-size:11px}.ppsps-brand{width:180px}.ppsps-logo{width:180px;height:96px}.ppsps-brand strong{margin-top:-2px;font-size:7.5px}.ppsps-heading{gap:14px}}
@media print{html,body{margin:0!important;padding:0!important;background:#fff!important;min-height:0!important}.app-shell{display:none!important}#modal-root{display:block!important}.modal-backdrop{position:static!important;min-height:0!important}.modal{margin:0!important}.commercial-preview,.ppsps-document{background:#fff!important}}
.dashboard-title{align-items:flex-end}.dashboard-date{color:var(--muted);font-size:12px;text-transform:capitalize}.dashboard-cards{margin-bottom:16px}.dashboard-finance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.dashboard-finance-card{display:grid;gap:6px;padding:16px;border-radius:13px;color:#fff;background:linear-gradient(135deg,#27304d,#161b31);box-shadow:var(--shadow)}.dashboard-finance-card.green{background:linear-gradient(135deg,#3e9661,#267044)}.dashboard-finance-card.orange{background:linear-gradient(135deg,#f19b35,#d66d21)}.dashboard-finance-card.purple{background:linear-gradient(135deg,var(--purple),#7a2bd8)}.dashboard-finance-card span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.85}.dashboard-finance-card strong{font-size:24px}.dashboard-finance-card small{opacity:.8}.dashboard-finance-card button{justify-self:start;padding:0;border:0;background:transparent;color:#fff;font-size:11px;font-weight:800}.dashboard-main-grid{display:grid;grid-template-columns:.85fr 1.6fr;gap:16px}.dashboard-lower-grid{display:grid;grid-template-columns:.8fr 1.5fr;gap:16px;margin-top:16px}.dashboard-section-head{margin-bottom:10px}.dashboard-section-head h3{margin:0 0 3px}.dashboard-alerts{display:grid}.dashboard-alert{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink)}.dashboard-alert:last-child{border-bottom:0}.dashboard-alert>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#fff0f2;color:var(--red);font-weight:900}.dashboard-alert.warning>span{background:#fff7e4;color:#a66600}.dashboard-alert strong,.dashboard-alert small{display:block}.dashboard-alert small{margin-top:3px;color:var(--muted)}.dashboard-alert>b{color:var(--purple)}.dashboard-all-good{padding:25px;border-radius:11px;background:#edf8f1;color:#246640;text-align:center;font-weight:750}.dashboard-calendar-panel{overflow:hidden}.dashboard-calendar-panel .calendar-head h3{margin:0 0 3px;text-transform:capitalize}.calendar-day-name{padding:7px;text-align:center;color:var(--muted);font-size:9px;font-weight:800}.dashboard-calendar-panel .calendar-cell{min-height:70px}.dashboard-calendar-panel .cal-event{position:static;display:block;margin-top:3px}.calendar-more{display:block;color:var(--muted);margin-top:2px}.dashboard-upcoming{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:11px;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink)}.dashboard-upcoming:last-child{border-bottom:0}.dashboard-upcoming .date-pill{display:grid}.dashboard-upcoming strong,.dashboard-upcoming small{display:block}.dashboard-upcoming small{margin-top:3px;color:var(--muted)}.dashboard-upcoming>b{color:var(--purple)}.dashboard-sites{margin-top:0}.dashboard-sites .table{min-width:600px}
@media(max-width:1200px){.dashboard-finance{grid-template-columns:1fr 1fr}.dashboard-main-grid,.dashboard-lower-grid{grid-template-columns:1fr}}
@media(max-width:650px){.dashboard-date{display:none}.dashboard-finance{grid-template-columns:1fr}.dashboard-calendar-panel .calendar-cell{min-height:48px;padding:4px}.dashboard-calendar-panel .cal-event{width:7px;height:7px;border-radius:50%;padding:0;font-size:0}.dashboard-upcoming{grid-template-columns:50px 1fr auto}}
.expense-color-key{display:flex;gap:7px;flex-wrap:wrap}.expense-color-key span{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.expense-color-key .green{background:#e5f6eb;color:#247448}.expense-color-key .yellow{background:#fff6d8;color:#806000}.expense-color-key .orange{background:#fff0dc;color:#a34e00}.expense-color-key .red{background:#ffe5e9;color:#b72e43}.expense-site-card{border-width:2px;padding:14px}.expense-site-name{font-size:13px!important}.expense-site-main{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.expense-site-main strong,.expense-site-main b{font-size:20px}.expense-site-main b{font-weight:900}.expense-site-progress{position:relative;height:7px;overflow:hidden;border-radius:999px;background:rgba(120,120,130,.15)}.expense-site-progress i{display:block;height:100%;border-radius:inherit;background:currentColor}.expense-site-card.neutral{color:#55596d}.expense-site-card.green{color:#247448;background:#eff9f2;border-color:#9dd3b0}.expense-site-card.yellow{color:#806000;background:#fff9e5;border-color:#e8ce6a}.expense-site-card.orange{color:#a34e00;background:#fff3e5;border-color:#efa65e}.expense-site-card.red{color:#b72e43;background:#fff0f2;border-color:#e98393}.expense-site-card.green small,.expense-site-card.yellow small,.expense-site-card.orange small,.expense-site-card.red small{color:currentColor;opacity:.8}.expense-site-card.red em{color:#b72e43;font-size:11px}.expense-site-card.active{box-shadow:0 0 0 3px rgba(74,30,168,.18)}
/* Pilotage des chantiers */
.task-progress-field{background:#f7f3fa;border:1px solid #e5dced;border-radius:10px;padding:13px}.task-progress-input{display:grid;grid-template-columns:1fr 88px 18px;gap:10px;align-items:center}.task-progress-input input[type="range"]{width:100%;accent-color:#7040a8}.task-progress-input .input{text-align:right;font-weight:800}.task-progress-input>strong{color:#5d327d}
.badge.hidden{display:none}.notifications-list{display:grid}.notification-row{width:100%;display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;padding:13px 5px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit}.notification-row:hover{background:#faf7fd}.notification-row>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff1d9;color:#aa5b00;font-weight:900}.notification-row.danger>span{background:#ffe7e9;color:#bd3145}.notification-row div{display:flex;flex-direction:column;gap:3px}.notification-row strong{font-size:13px}.notification-row small{color:var(--muted)}.notification-row>b{color:var(--purple);font-size:18px}.notification-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:35px 10px;gap:7px;color:#397854}.notification-empty>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8f7ee;font-size:24px}.notification-empty small{color:var(--muted)}
.gantt-dynamic{min-width:0}.gantt-dynamic .gantt-head,.gantt-dynamic .gantt-row{display:grid}.gantt-dynamic .gantt-head>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;text-transform:capitalize}.gantt-dynamic .gantt-head>div:first-child{align-items:flex-start;font-weight:800}.gantt-dynamic .gantt-head small{font-size:9px;color:#81798a}.gantt-dynamic .gantt-row>div{min-height:62px;padding:8px 5px}.gantt-dynamic .gantt-row .label{position:sticky;left:0;z-index:2;padding:9px;background:#fff}.gantt-task-meta{display:flex;align-items:center;gap:8px;margin-top:7px}.gantt-task-meta span{padding:3px 6px;border-radius:6px;background:#ede6f8;color:#603392;font-weight:800;font-size:10px}.gantt-task-meta small{color:#777080}.gantt-bar-cell{position:relative;overflow:visible!important;padding-top:18px!important}.gantt-dynamic .bar{position:relative;height:26px;background:#e9e2f1;overflow:hidden;box-shadow:none;border:1px solid #d9cbe7}.gantt-dynamic .bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--purple),var(--magenta),var(--orange));border-radius:6px}.gantt-dynamic .bar b{position:absolute;inset:0;display:grid;place-items:center;color:#2f153f;font-size:10px;text-shadow:0 1px 2px #fff;z-index:1}.gantt-today{background:#fff5df!important;box-shadow:inset 2px 0 #efa329,inset -2px 0 #efa329}.gantt-period{align-self:center;padding:7px 10px;background:#f5f1f8;border-radius:8px;font-weight:700}
.pilot-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.pilot-kpi{background:#fff;border:1px solid #e9e4f1;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 16px rgba(49,28,76,.05)}.pilot-kpi>span{color:#6e6677;font-size:13px;font-weight:700}.pilot-kpi>strong{font-size:25px;color:#2c183f}.pilot-kpi small{color:#847b8c}.pilot-kpi.warning{border-left:5px solid #f5a623}.pilot-kpi.danger{border-left:5px solid #d84040}.pilot-kpi.good{border-left:5px solid #3b9a62}.pilot-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:18px;align-items:start}.pilot-sites{display:flex;flex-direction:column;gap:14px}.pilot-site-card{border:1px solid #e8e2ed;border-radius:14px;overflow:hidden;background:#fff}.pilot-site-card.has-alert{border-left:4px solid #f1a12b}.pilot-site-head{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:15px 18px;border:0;background:#faf8fc;text-align:left;color:inherit;cursor:pointer}.pilot-site-head div{display:flex;flex-direction:column;gap:4px}.pilot-site-head strong{font-size:16px;color:#2d1a3e}.pilot-site-head small{color:#7b7283}.pilot-site-head>b{color:#6935aa;font-size:20px}.pilot-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:16px 18px}.pilot-metrics>div{padding:2px 15px;border-right:1px solid #eee9f2;display:flex;flex-direction:column;gap:5px;min-width:0}.pilot-metrics>div:first-child{padding-left:0}.pilot-metrics>div:last-child{border:0}.pilot-metrics span{font-size:12px;color:#746c7b;font-weight:700}.pilot-metrics strong{font-size:17px;color:#33213e}.pilot-metrics strong small,.pilot-metrics>div>small{display:block;font-size:11px;font-weight:500;color:#817889}.pilot-metrics .danger strong,.pilot-metrics .danger small{color:#c63737}.pilot-metrics .warning strong{color:#d37900}.pilot-metrics .good strong{color:#318052}.pilot-bar{height:6px;background:#eee9f3;border-radius:99px;overflow:hidden;margin-top:3px}.pilot-bar i{display:block;height:100%;background:#7140ae;border-radius:99px}.pilot-metrics .danger .pilot-bar i{background:#d84040}.pilot-metrics .warning .pilot-bar i{background:#f0a22e}.pilot-metrics .good .pilot-bar i{background:#45a269}.pilot-alert-tags{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px 15px}.pilot-alert-tags span{font-size:11px;font-weight:700;color:#a04d00;background:#fff1db;padding:5px 9px;border-radius:99px}.pilot-ok{color:#348256;background:#ecf8f0;margin:0 18px 15px;padding:8px 11px;border-radius:8px;font-size:12px;font-weight:700}.pilot-actions{position:sticky;top:84px}.pilot-action{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid #eee9f2;background:transparent;padding:12px 4px;cursor:pointer;color:inherit}.pilot-action>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff0d9;color:#b96100;font-weight:900}.pilot-action.danger>span{background:#fde8e8;color:#c53131}.pilot-action div{display:flex;flex-direction:column;gap:2px}.pilot-action strong{font-size:12px}.pilot-action small{color:#82798a}.pilot-action>b{color:#7544ad}.pilot-help{margin-top:18px;background:#f3eff8;border-radius:10px;padding:13px;color:#4e3c5e}.pilot-help p{font-size:12px;line-height:1.5;margin:6px 0 0}.pilot-title{align-items:center}
@media(max-width:1150px){.pilot-kpis{grid-template-columns:repeat(2,1fr)}.pilot-layout{grid-template-columns:1fr}.pilot-actions{position:static}.pilot-metrics{grid-template-columns:repeat(2,1fr);row-gap:18px}.pilot-metrics>div:nth-child(2){border-right:0}.pilot-metrics>div:nth-child(3){padding-left:0}}
@media(max-width:650px){.pilot-kpis{grid-template-columns:1fr}.pilot-metrics{grid-template-columns:1fr}.pilot-metrics>div{border-right:0;border-bottom:1px solid #eee9f2;padding:11px 0}.pilot-site-head{grid-template-columns:1fr auto}.pilot-site-head .status{display:none}.pilot-title .dashboard-date{display:none}}
.settings-save{display:flex;gap:9px;flex-wrap:wrap}.settings-backup-note{font-size:11px;line-height:1.45;color:var(--muted);margin:10px 0 0}
.close-site{border-color:#b8ddc5;color:#287549;background:#f1faf4}.reopen-site{border-color:#d8c9eb;color:#603392;background:#f8f4fc}
.closed-date{margin-top:5px;color:#657b91}.closing-summary{display:grid;gap:16px}.closing-score{display:flex;align-items:center;gap:13px;padding:14px;border-radius:12px}.closing-score.ready{background:#eaf7ee;color:#2c7147}.closing-score.warning{background:#fff4df;color:#8b5700}.closing-score>strong{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff;font-size:18px}.closing-score>div{display:flex;flex-direction:column;gap:3px}.closing-score small{color:inherit;opacity:.8}.closing-checks{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}.closing-checks>div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.closing-checks>div:last-child{border:0}.closing-checks>div>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}.closing-checks .ok>span{background:#e8f7ee;color:#287549}.closing-checks .warn>span{background:#fff0d8;color:#a55d00}.closing-checks>div>div{display:flex;flex-direction:column;gap:3px}.closing-checks small{color:var(--muted)}
.status.closed{background:#e8eef6;color:#425c78}.status.closed i{background:#587795}.site-summary{display:flex;gap:10px;margin-bottom:15px}.site-summary>div{display:flex;align-items:baseline;gap:8px;padding:10px 15px;border:1px solid #dfe9e2;border-radius:10px;background:#f3faf5;color:#2b7348}.site-summary>div.completed{border-color:#d8e1ec;background:#f1f5f9;color:#425c78}.site-summary strong{font-size:20px}.site-summary span{font-size:12px;font-weight:700}.site-list-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.site-list-title h3{margin:0 0 3px}.site-list-title small{color:var(--muted)}.site-list-title>span{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:9px;background:#ece6f6;color:#603392;font-weight:800}.site-table-wrap{overflow:auto}.site-table-wrap .table{min-width:850px}.completed-sites-panel{margin-top:18px;background:#f9fafc;border-color:#dce3eb}.completed-sites-panel .site-list-title>span{background:#e3eaf2;color:#425c78}.completed-sites-panel tbody tr{opacity:.88}.completed-sites-panel tbody tr:hover{opacity:1;background:#fff}.completed-sites-panel .secondary-btn{color:#425c78}
.brand-wrap{height:145px}.brand-logo{width:235px;max-width:100%}.settings-save{margin-top:16px}.company-preview{text-align:center}.company-preview>img{display:block;width:230px;max-width:100%;margin:0 auto 10px}.company-preview>strong,.company-preview>span{display:block}.company-preview>span{margin-top:4px;color:var(--muted);font-size:12px}.company-preview .notice{text-align:left;margin-top:20px}
.quick-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.quick-create-grid>button{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;color:inherit}.quick-create-grid>button:hover{border-color:#9b79d2;background:#faf7fe;box-shadow:0 5px 14px rgba(73,38,111,.08)}.quick-create-grid>button>span{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#ede5f8,#fff0e4);color:#693a9b;font-size:21px;font-weight:800}.quick-create-grid>button>div{display:flex;flex-direction:column;gap:4px}.quick-create-grid strong{font-size:13px;color:#2e1e3b}.quick-create-grid small{font-size:11px;color:var(--muted)}@media(max-width:600px){.quick-create-grid{grid-template-columns:1fr}}
.nav-list{overflow-y:auto;min-height:0;padding-right:3px}.module-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) repeat(3,minmax(130px,.45fr));gap:12px;align-items:stretch;margin-bottom:16px}.module-site-select{align-self:center}.module-kpi{display:flex;flex-direction:column;justify-content:center;padding:11px 13px;border-left:4px solid #7850ae;border-radius:9px;background:#f7f3fb}.module-kpi strong{font-size:18px;color:#38204d}.module-kpi span{font-size:10px;color:var(--muted);margin-top:3px}.module-kpi.danger{border-color:#d84955;background:#fff3f4}.module-kpi.danger strong{color:#b52e3b}.module-kpi.good{border-color:#45a269;background:#eff9f2}.module-kpi.good strong{color:#287549}.module-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.reservation-card{position:relative;padding:16px;border:1px solid var(--line);border-top:4px solid #7651a5;border-radius:13px;background:#fff;box-shadow:var(--shadow)}.reservation-card.priority-urgente{border-top-color:#da4350}.reservation-card.priority-faible{border-top-color:#6c91ad}.reservation-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.reservation-head>span{font-size:10px;font-weight:800;text-transform:uppercase;color:#74687d}.reservation-card h3{margin:14px 0 5px;font-size:15px}.reservation-card>p{margin:0;color:var(--muted);font-size:12px}.reservation-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.reservation-meta span{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--muted)}.reservation-meta strong{font-size:11px;color:var(--ink)}.reservation-photo{display:inline-block;margin-top:10px;color:var(--purple);font-size:11px;font-weight:800}.module-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.module-actions .secondary-btn,.module-actions .danger-btn{padding:7px 9px;font-size:10px}@media(max-width:1100px){.module-toolbar{grid-template-columns:1fr 1fr}.module-card-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.module-toolbar,.module-card-grid{grid-template-columns:1fr}}
.payment-progress{height:12px;background:#eee9f3;border-radius:99px;overflow:hidden;margin-bottom:16px}.payment-progress i{display:block;height:100%;background:linear-gradient(90deg,#4ca06a,#79c88f)}.payment-late{background:#fff7f7}.margin-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:16px}.margin-row{display:grid;grid-template-columns:minmax(150px,.8fr) 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.margin-row>div:first-child{display:flex;flex-direction:column}.margin-row small{color:var(--muted)}.margin-bar{height:9px;background:#eee9f3;border-radius:99px;overflow:hidden}.margin-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--magenta),var(--orange))}.margin-reading>div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.margin-reading .result{margin-top:8px;padding:15px;border:0;border-radius:10px;background:#ecf8f0;color:#287549}.margin-reading .result.negative{background:#fff0f2;color:#b92f43}.margin-reading p{font-size:11px;line-height:1.5;color:var(--muted);margin-top:18px}.maintenance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.maintenance-card{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.maintenance-card>span{font-size:10px;font-weight:800;color:var(--purple);text-transform:uppercase}.maintenance-card h3{margin:7px 0}.maintenance-card>p{min-height:55px;color:var(--muted);font-size:12px;line-height:1.5}.maintenance-card>div:not(.module-actions){display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:11px}.maintenance-card small{color:var(--muted)}.maintenance-print header{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid var(--purple);padding-bottom:16px}.maintenance-print header img{width:230px;height:auto}.maintenance-print header div{display:flex;flex-direction:column;align-items:flex-end}.maintenance-print header h2{margin:0}.maintenance-print>section{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.maintenance-print>section>div{display:flex;flex-direction:column;padding:13px;background:#f6f3f9}.maintenance-print article{break-inside:avoid;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.maintenance-print article h4{margin:4px 0}.maintenance-print article>div>span{font-size:10px;color:var(--purple);font-weight:800}.maintenance-print article p{line-height:1.5}.maintenance-print footer{margin-top:24px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.maintenance-modal{width:min(1050px,100%)}@media(max-width:900px){.margin-layout{grid-template-columns:1fr}.maintenance-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.maintenance-grid{grid-template-columns:1fr}.margin-row{grid-template-columns:1fr auto}.margin-bar{grid-column:1/-1}}@media print{.maintenance-modal{width:100%;max-height:none;overflow:visible;box-shadow:none}.maintenance-print{font-size:10pt}}
.global-search{position:relative;width:min(340px,32vw)}.global-search>input{width:100%;height:40px;padding:0 38px 0 13px;border:1px solid var(--line);border-radius:10px;background:#f8f8fb;outline:none}.global-search>input:focus{background:#fff;border-color:#a98bd7;box-shadow:0 0 0 3px #eee8f7}.global-search>span{position:absolute;right:13px;top:8px;font-size:19px;color:#71687c}.global-search-results{display:none;position:absolute;top:46px;right:0;width:min(520px,80vw);max-height:440px;overflow:auto;padding:7px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 50px rgba(31,20,45,.18);z-index:30}.global-search-results.open{display:grid}.global-search-results button{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px;border:0;border-bottom:1px solid #f0edf3;background:#fff;text-align:left;color:inherit}.global-search-results button:hover{background:#f8f4fc}.global-search-results button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#efe8f8;color:#65369a}.global-search-results button div{display:flex;flex-direction:column;gap:2px}.global-search-results small{color:var(--muted)}.global-search-empty{padding:25px;text-align:center;color:var(--muted)}.action-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.action-kpis>div{display:flex;align-items:baseline;gap:9px;padding:14px 16px;border-radius:12px;background:#f2eef8;color:#623795}.action-kpis .danger{background:#fff0f2;color:#b92f43}.action-kpis .today{background:#fff6e5;color:#9a5c00}.action-kpis strong{font-size:24px}.action-kpis span{font-size:12px;font-weight:700}.action-center-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.action-group{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.action-group-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.action-group-title h3{margin:0}.action-group-title span{padding:4px 8px;border-radius:8px;background:#eee8f5;color:#603392;font-weight:800}.center-action{display:grid;grid-template-columns:32px 1fr auto auto;gap:9px;align-items:center;width:100%;padding:11px 4px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit}.center-action>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f0eafa;color:#65369a}.center-action.danger>span{background:#ffe9ec;color:#bd3145}.center-action.today>span{background:#fff1d8;color:#a55d00}.center-action div{display:flex;flex-direction:column;gap:2px;min-width:0}.center-action strong,.center-action small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-action small{color:var(--muted)}.center-action time{font-size:10px;color:#6f6678}.center-action>b{color:var(--purple)}.action-empty{padding:25px 8px;text-align:center;color:var(--muted);font-size:12px}.settings-professional{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}@media(max-width:1150px){.action-center-grid{grid-template-columns:1fr}.global-search{width:min(280px,30vw)}}@media(max-width:760px){.global-search{position:absolute;left:80px;right:150px;width:auto}.global-search-results{left:0;right:auto;width:min(520px,75vw)}.action-kpis{grid-template-columns:1fr 1fr 1fr}}@media(max-width:560px){.global-search{left:70px;right:70px}.top-actions .primary-btn{display:none}.action-kpis{grid-template-columns:1fr}}
.account-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:16px}.account-summary>div{display:flex;align-items:baseline;gap:9px;padding:17px;border:1px solid #e2d9ed;border-radius:13px;background:linear-gradient(135deg,#faf7fd,#fff)}.account-summary strong{font-size:25px;color:var(--purple)}.account-summary span{font-size:12px;font-weight:700}.account-person{display:flex;align-items:center;gap:10px}.account-person>span,.audit-row>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eee6f8;color:#633793;font-weight:900}.account-person>div{display:flex;flex-direction:column;gap:2px}.account-person small{color:var(--muted)}.account-role,.account-state{display:inline-flex;padding:5px 9px;border-radius:99px;background:#f0ebf7;color:#653a94;font-size:10px;font-weight:800}.account-role.client{background:#eaf3fb;color:#326687}.account-role.subcontractor{background:#fff1dc;color:#945b08}.account-role.owner{background:#e9f6ed;color:#28754a}.account-state.active{background:#e9f6ed;color:#28754a}.account-state.inactive{background:#f0f1f3;color:#68707a}.account-help{margin-top:16px}.permission-line{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.permission-line span{color:var(--muted)}.audit-row{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.audit-row>span{width:30px;height:30px}.audit-row>div{display:flex;flex-direction:column;gap:2px}.audit-row small{color:var(--muted);font-size:10px}.user-site-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:230px;overflow:auto;padding:5px}.user-site-list label{display:flex;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px}.user-site-list label span{display:flex;flex-direction:column}.user-site-list small{color:var(--muted)}.account-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:9px}[data-role="client"] [data-action^="add-"],[data-role="client"] [data-action="open-ppsps"],[data-role="client"] [data-edit-task],[data-role="client"] [data-detail-edit-site],[data-role="client"] [data-new-commercial],[data-role="client"] [data-edit-commercial],[data-role="client"] [data-convert-commercial],[data-role="client"] [data-delete-commercial],[data-role="client"] [data-delete-document],[data-role="client"] #save-ppsps,[data-role="client"] #finalize-ppsps{display:none!important}[data-role="subcontractor"] [data-detail-edit-site],[data-role="subcontractor"] [data-new-commercial]{display:none!important}@media(max-width:700px){.account-summary,.user-site-list{grid-template-columns:1fr}.permission-line{grid-template-columns:1fr}}

/* Mobile 15.4 — navigation tactile, contenus lisibles et fenêtres plein écran. */
@media(max-width:700px){
  body{overflow-x:hidden;-webkit-text-size-adjust:100%}
  .app-shell{display:block;min-height:100dvh}
  .main-area{padding-bottom:76px}
  .sidebar{position:fixed;inset:auto 0 0 0;z-index:18;width:100%;height:72px;padding:6px 8px max(6px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(39,25,55,.1);background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}
  .brand-wrap,.sidebar-footer{display:none}
  .nav-list{display:flex;flex-direction:row;gap:5px;overflow-x:auto;overflow-y:hidden;height:100%;padding:0 2px 4px;scrollbar-width:none;scroll-snap-type:x proximity}
  .nav-list::-webkit-scrollbar{display:none}
  .nav-item,.nav-more{flex:0 0 74px;min-width:74px;height:56px;padding:5px 4px;border-radius:10px;display:flex!important;flex-direction:column;justify-content:center;gap:3px;text-align:center;scroll-snap-align:start;font-size:9px;line-height:1.05}
  .nav-item span:first-child,.nav-more span:first-child{width:auto;font-size:19px;line-height:1}
  .nav-item span:last-child,.sidebar .nav-more span:nth-child(2){display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sidebar .nav-more b{display:none}
  .nav-item.active{box-shadow:none}
  .topbar{height:58px;padding:0 12px;gap:8px}
  .breadcrumbs{max-width:32%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
  .top-actions{flex:1;justify-content:flex-end;min-width:0}
  .global-search{position:relative;inset:auto;flex:1;width:auto;max-width:280px}
  .global-search>input{height:40px;padding-left:11px;font-size:16px}
  .global-search-results{position:fixed;left:10px;right:10px;top:62px;width:auto;max-height:60dvh}
  .content{padding:12px 10px 20px}
  .section-title{align-items:flex-start;flex-direction:column;gap:12px}
  .section-title>button,.section-title>div:last-child:not(:first-child){max-width:100%}
  .toolbar{display:grid;grid-template-columns:1fr;gap:8px}
  .toolbar .search{min-width:0}
  .toolbar>button,.toolbar>.primary-btn,.toolbar>.secondary-btn{width:100%}
  button,.primary-btn,.secondary-btn,.danger-btn,.icon-btn{min-height:42px;touch-action:manipulation}
  .panel{padding:14px;border-radius:12px}
  .panel:has(>.table),.panel:has(.table){overflow-x:auto}
  .table{min-width:680px}
  .table th,.table td{padding:11px 9px}
  .site-table-wrap{margin-inline:-4px}
  .modal-backdrop{align-items:end;padding:0}
  .modal{width:100%;max-height:94dvh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  .modal-head{position:sticky;top:0;z-index:2;padding:14px 15px;background:#fff}
  .modal-body{padding:15px}
  .modal-foot{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:1fr;padding:12px 15px max(12px,env(safe-area-inset-bottom));background:#fff}
  .modal-foot button{width:100%}
  .risk-item,.choice-assignment{grid-template-columns:1fr}
  .login-screen{padding:14px}
  .login-card{padding:25px 18px;border-radius:18px}
  .weather-days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
  .weather-day{flex:0 0 132px;scroll-snap-align:start}
  .gantt-wrap{margin-inline:-10px;padding-inline:10px}
}
