.source-note { background:#f2f7f5; border-radius:9px; padding:.75rem; color:var(--muted); font-size:.82rem; }
.history-strip { display:flex; align-items:center; gap:.5rem; overflow-x:auto; padding:.65rem 0 1rem; margin-bottom:.5rem; border-bottom:1px solid var(--line); }
.history-strip > b { font-size:.8rem; white-space:nowrap; }
.history-date { border:1px solid var(--line); background:#fff; border-radius:999px; padding:.4rem .65rem; white-space:nowrap; color:var(--text); }
.history-date:hover, .report-history-item:hover { border-color:var(--green); background:#f2faf7; }
.week-row { display:grid; grid-template-columns:92px 1fr; gap:.2rem .7rem; padding:.58rem 0; border-bottom:1px solid var(--line); }
.week-row > b { grid-row:span 2; color:var(--green); font-size:.83rem; }
.week-row small { color:var(--muted); }
.diary-layout { display:grid; grid-template-columns:330px minmax(0,1fr); gap:1rem; }
.diary-browser { max-height:calc(100vh - 145px); overflow:auto; }
.report-history-item { width:100%; display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:.6rem; text-align:left; border:1px solid transparent; border-bottom-color:var(--line); background:#fff; padding:.65rem .25rem; color:var(--text); }
.report-history-item > span:nth-child(2) small { display:block; color:var(--muted); margin-top:.2rem; }
.report-title { display:flex; justify-content:space-between; align-items:start; border-bottom:2px solid var(--navy); padding-bottom:.75rem; }
.report-title h2 { font-size:1.5rem; margin:.2rem 0 0; }
.eyebrow { font-size:.7rem; letter-spacing:.1em; color:var(--muted); font-weight:850; }
.report-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; background:#f5f8f6; padding:.8rem; margin:1rem 0; border-radius:10px; }
.report-meta span { font-size:.85rem; }
.report-meta b { display:block; color:var(--muted); font-size:.7rem; text-transform:uppercase; }
.executed-service { display:grid; grid-template-columns:minmax(220px,1fr) 170px 170px; gap:.9rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--line); }
.executed-service h3 { margin:.35rem 0 .1rem; }
.executed-service > p { grid-column:1/-1; margin:0; color:var(--muted); font-size:.86rem; }
.confirmation { display:block; width:max-content; max-width:100%; margin-top:.45rem; padding:.24rem .48rem; border-radius:6px; background:#e3f5ed; color:#126546!important; font-weight:800; }
.quantity-box { background:#f5f8f6; border-radius:9px; padding:.7rem; }
.quantity-box span, .quantity-box small { display:block; color:var(--muted); font-size:.72rem; }
.quantity-box strong { display:block; font-size:1.05rem; margin:.15rem 0; }
.report-pending { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1rem; padding:.75rem; background:#fff7ed; border-radius:9px; font-size:.82rem; }
@media (max-width:1180px) { .diary-layout { grid-template-columns:280px minmax(0,1fr); } .executed-service { grid-template-columns:1fr 150px; } }
@media (max-width:850px) { .diary-layout { grid-template-columns:1fr; } .diary-browser { max-height:none; } .executed-service { grid-template-columns:1fr 1fr; } .executed-service > div:first-child { grid-column:1/-1; } .report-meta { grid-template-columns:1fr; } }
@media (max-width:600px) { .executed-service { grid-template-columns:1fr; } .executed-service > div:first-child { grid-column:auto; } .report-history-item { grid-template-columns:48px 1fr; } .report-history-item > .pill { display:none; } }
.panel-title-actions { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:.9rem; }
.panel-title-actions h2 { margin:0; }
.panel-title-actions > div { display:flex; gap:.5rem; }
.daily-toolbar .history-select { min-width:310px; flex:1; }
.daily-toolbar select { width:100%; border:1px solid #afc1bb; border-radius:10px; background:#fff; padding:.78rem .9rem; color:var(--text); }
.overlay-open { overflow:hidden; }
#progressOverlay { position:fixed; inset:0; z-index:100; background:rgba(8,26,29,.65); backdrop-filter:blur(5px); padding:1.2rem; }
.full-overlay { width:100%; height:100%; background:var(--bg); border-radius:18px; overflow:auto; box-shadow:0 25px 80px rgba(0,0,0,.32); }
.full-overlay > header { position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; align-items:start; gap:1rem; background:#fff; border-bottom:1px solid var(--line); padding:1.1rem 1.5rem; }
.full-overlay h1 { margin:.1rem 0; font-size:1.7rem; }
.full-overlay header p { margin:0; color:var(--muted); }
.overlay-close { border:0; background:#e8efec; color:var(--navy); border-radius:50%; width:42px; height:42px; font-size:1.7rem; line-height:1; }
.overlay-tabs { position:sticky; top:91px; z-index:2; display:flex; gap:.4rem; background:#fff; border-bottom:1px solid var(--line); padding:.65rem 1.5rem; }
.overlay-tabs button { border:0; background:transparent; color:var(--muted); border-radius:8px; padding:.65rem 1rem; font-weight:800; }
.overlay-tabs button.active { background:var(--navy); color:#fff; }
.full-overlay > main { padding:1.4rem 1.5rem 2rem; max-width:1500px; margin:auto; }
.advance-table td { vertical-align:middle; }
.compact-progress { display:inline-block; width:110px; height:8px; background:#e5ece9; border-radius:99px; overflow:hidden; margin-right:.55rem; }
.compact-progress i { display:block; height:100%; background:var(--green); }
.curve-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1rem; }
.curve-summary > div { background:#fff; border:1px solid var(--line); border-radius:13px; padding:1rem; }
.curve-summary span { color:var(--muted); font-size:.8rem; }
.curve-summary strong { display:block; font-size:1.7rem; margin-top:.2rem; }
.curve-summary strong.negative { color:var(--red); }
.legend { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-bottom:0; border-radius:14px 14px 0 0; padding:.8rem 1rem; color:var(--muted); font-size:.82rem; }
.planned-dot,.actual-dot { width:25px; height:4px; border-radius:5px; margin-left:.8rem; }
.planned-dot { background:var(--teal); }
.actual-dot { background:var(--amber); }
.curve-chart { width:100%; min-height:360px; background:#fff; border:1px solid var(--line); border-radius:0 0 14px 14px; }
.curve-chart text { fill:#6b7c76; font-size:12px; font-family:Inter,system-ui,sans-serif; }
.chart-grid { stroke:#dce5e1; stroke-width:1; }
.chart-axis { stroke:#789089; stroke-width:1.5; }
.chart-line { fill:none; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.chart-line.planned { stroke:var(--teal); }
.chart-line.actual { stroke:var(--amber); }
.method-note { margin-top:1rem; background:#fff7ed; border-left:4px solid var(--amber); border-radius:9px; padding:1rem; color:#5f554c; }
@media (max-width:760px) { #progressOverlay { padding:0; } .full-overlay { border-radius:0; } .overlay-tabs { top:116px; } .panel-title-actions { align-items:flex-start; flex-direction:column; } .curve-summary { grid-template-columns:1fr; } .curve-chart { min-height:260px; } .daily-toolbar .history-select { min-width:100%; } }
.schedule-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; margin-bottom:1rem; }
.schedule-kpis > div { background:linear-gradient(145deg,#fff,#f4f8f6); border:1px solid var(--line); border-radius:13px; padding:.85rem 1rem; box-shadow:0 4px 16px rgba(15,45,38,.04); }
.schedule-kpis span { display:block; color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.schedule-kpis strong { display:block; margin-top:.18rem; font-size:1.08rem; }
.gantt-panel { background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); overflow:hidden; }
.gantt-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid var(--line); background:linear-gradient(110deg,#fff,#f1f8f5); }
.gantt-toolbar h2 { margin:.15rem 0 0; font-size:1.15rem; }
.gantt-legend { display:flex; gap:.9rem; flex-wrap:wrap; color:var(--muted); font-size:.72rem; }
.gantt-legend span { display:flex; align-items:center; gap:.3rem; }
.gantt-legend i { display:inline-block; width:12px; height:12px; border-radius:3px; }
.legend-start { background:#2f9d70; border-radius:50%!important; }
.legend-end { background:#d95e4f; transform:rotate(45deg); border-radius:2px!important; }
.legend-progress { background:var(--navy); }
.legend-today { width:3px!important; background:#e04c3d; }
.gantt-scroll { overflow-x:auto; }
.gantt-grid { min-width:1240px; }
.gantt-head,.gantt-row { display:grid; grid-template-columns:390px minmax(850px,1fr); }
.gantt-head { position:sticky; top:0; z-index:1; background:#f6f9f8; border-bottom:1px solid var(--line); }
.gantt-task-head { padding:.7rem 1rem; color:var(--muted); font-size:.7rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.gantt-scale { position:relative; height:42px; overflow:hidden; border-left:1px solid var(--line); }
.gantt-scale span { position:absolute; inset:0 auto 0 0; display:flex; align-items:center; justify-content:center; border-left:1px solid #dce6e2; color:#60756e; font-size:.64rem; font-weight:800; }
.gantt-row { min-height:92px; border-bottom:1px solid #e6ece9; }
.gantt-row:last-child { border-bottom:0; }
.gantt-task { display:grid; grid-template-columns:40px 1fr; gap:.55rem; align-items:center; padding:.65rem .9rem; }
.gantt-number { color:#a0b1ab; font-size:.72rem; font-weight:850; }
.gantt-task-title { display:flex; align-items:center; gap:.42rem; min-width:0; }
.gantt-task-title b { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.82rem; }
.gantt-task-title .pill { margin-left:auto; white-space:nowrap; }
.discipline-dot { width:8px; height:8px; flex:0 0 auto; border-radius:50%; }
.gantt-task small { display:block; color:var(--muted); margin:.2rem 0; font-size:.69rem; }
.gantt-dates { display:flex; gap:.38rem; flex-wrap:wrap; }
.date-start,.date-end { display:inline-flex; align-items:center; border-radius:6px; padding:.18rem .4rem; font-size:.68rem; font-weight:800; white-space:nowrap; }
.date-start { color:#126546; background:#e3f5ed; }
.date-end { color:#9b352b; background:#fdeae7; }
.th-start { color:#126546; }
.th-end { color:#9b352b; }
.gantt-track { position:relative; min-height:92px; background:repeating-linear-gradient(0deg,#fff 0,#fff 45px,#fbfcfc 46px,#fbfcfc 92px); border-left:1px solid var(--line); overflow:hidden; }
.gantt-gridline { position:absolute; inset:0 auto 0 0; width:1px; background:#e4ebe8; }
.gantt-today { position:absolute; z-index:2; inset:0 auto 0 0; width:2px; background:#e04c3d; box-shadow:0 0 0 1px rgba(224,76,61,.08); }
.gantt-bar { position:absolute; z-index:3; left:var(--left); width:var(--width); top:33px; height:26px; background:color-mix(in srgb,var(--bar) 72%,white); border:1px solid color-mix(in srgb,var(--bar) 86%,black); border-radius:7px; box-shadow:0 3px 8px rgba(25,50,45,.13); }
.gantt-done { position:absolute; inset:0 auto 0 0; background:color-mix(in srgb,var(--bar) 72%,black); border-radius:6px 0 0 6px; }
.gantt-start,.gantt-end { position:absolute; z-index:2; top:50%; width:10px; height:10px; transform:translateY(-50%); }
.gantt-start { left:-5px; background:#2f9d70; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #237b57; }
.gantt-end { right:-5px; background:#d95e4f; border:2px solid #fff; transform:translateY(-50%) rotate(45deg); box-shadow:0 0 0 1px #aa4136; }
.gantt-bar em { position:absolute; z-index:4; left:7px; top:4px; color:#fff; font-size:.66rem; font-style:normal; font-weight:900; text-shadow:0 1px 2px rgba(0,0,0,.3); }
.gantt-note { margin:0; padding:.75rem 1rem; background:#fff8ec; border-top:1px solid #f0ddba; color:#665b49; font-size:.76rem; }
.schedule-detail { margin-top:1rem; }
@media (max-width:900px) { .schedule-kpis { grid-template-columns:repeat(2,1fr); } .gantt-toolbar { align-items:flex-start; flex-direction:column; } }
@media (max-width:520px) { .schedule-kpis { grid-template-columns:1fr; } }
.future-module{display:grid;gap:1rem}.future-module-head{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.35rem}.future-module-head h2{margin:.55rem 0 .35rem;font-size:1.35rem}.future-module-head p{margin:0;color:var(--muted);max-width:760px}.future-module-head aside{border-left:4px solid var(--teal);padding:.85rem 0 .85rem 1rem;background:#f4faf8}.future-module-head aside b,.future-module-head aside small{display:block}.future-module-head aside small{margin-top:.35rem;color:var(--muted)}.safety-module .future-module-head aside{border-left-color:var(--amber);background:#fff8ef}.future-card{min-height:190px;display:flex;flex-direction:column;border-top:4px solid var(--teal)}.safety-module .future-card{border-top-color:var(--amber)}.future-card>span{color:#8aa39b;font-size:1.35rem;font-weight:300}.future-card h3{margin:.75rem 0 .4rem}.future-card p{margin:0;color:var(--muted)}.future-card small{margin-top:auto;padding-top:1rem;font-size:.7rem;letter-spacing:.1em;color:#688078}@media(max-width:850px){.future-module-head{grid-template-columns:1fr}}@media(max-width:600px){.future-module-head{padding:1rem}}
.document-library{margin-top:1rem;border-top:4px solid var(--green)}.document-library-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.document-library-head h2{margin:.2rem 0}.document-library-head p{margin:0;color:var(--muted)}.document-actions{display:flex;gap:.5rem;flex:0 0 auto}.document-scope{display:flex;gap:.55rem;flex-wrap:wrap;margin:.9rem 0}.document-scope span{background:#edf4f1;border-radius:999px;padding:.3rem .6rem;color:#49645c;font-size:.72rem;font-weight:750}.document-list{border-top:1px solid var(--line)}.document-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line)}.document-type{display:grid;place-items:center;min-height:42px;border-radius:9px;background:#e4f2f5;color:#16636f;font-size:.65rem;font-weight:900}.document-info{min-width:0}.document-info b,.document-info small{display:block}.document-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-info small{margin-top:.2rem;color:var(--muted)}.document-empty{display:grid;gap:.25rem;padding:1.25rem;text-align:center;color:var(--muted)}.document-local-note{margin:.8rem 0 0;padding:.7rem .8rem;border-radius:9px;background:#fff8ec;color:#665b49;font-size:.76rem}@media(max-width:650px){.document-library-head{align-items:flex-start;flex-direction:column}.document-actions,.document-upload{width:100%}.document-row{grid-template-columns:44px minmax(0,1fr)}.document-download{grid-column:1/-1;width:100%}}
