:root{font-family:Segoe UI,Arial,sans-serif;color:#173c62;background:#071729;font-size:14px}*{box-sizing:border-box}body{margin:0;padding:24px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #b8c9d9;border-radius:5px;padding:8px 12px;background:#fff;color:#173c62}button:hover:not(:disabled){background:#dce8f4}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1a6aba;outline-offset:2px}button:disabled{color:#8c98a3;background:#e4e8ed;cursor:not-allowed}.demo-note{max-width:1320px;margin:0 auto 20px;display:flex;align-items:center;gap:24px;color:#bdcfe0;font-size:12px}.demo-note a{color:#fff;text-decoration:none}.demo-note span{flex:1}.client{max-width:1320px;margin:auto;background:#e7f0fa;border-radius:10px;box-shadow:0 22px 80px #0007;overflow:hidden}.menu{padding:4px 14px;background:#fff}.menu button{border:0;padding:4px 10px;font-size:12px}header{display:flex;align-items:center;gap:16px;padding:22px}header img{width:40px;height:40px;object-fit:contain}header h1{font-size:24px;margin:0;font-weight:750}header small{font-size:11px;letter-spacing:2px;padding-left:8px}header strong{font-size:22px}.signal{width:11px;height:11px;border-radius:50%;background:#19a166;box-shadow:0 0 0 5px #19a16610}.tabs{display:flex;margin:0 14px;background:#d7e5f3}.tabs button{border-radius:0;border-color:transparent;padding:13px 22px;font-weight:600}.tabs button.active{background:#e7f0fa}.tabs button:not(.active){background:transparent}section{padding:20px 24px}.controls{display:flex;align-items:center;gap:12px;min-height:36px}#charge-control{display:flex;gap:12px;align-items:center;margin-left:40px}.toggle{width:48px;height:24px;padding:0;background:linear-gradient(#e7e9e9,#bcc2c4)!important;border:1px solid #929b9e;border-radius:4px;position:relative}.toggle span{position:absolute;top:3px;left:3px;width:21px;height:16px;border:1px solid #959da0;background:linear-gradient(#fff,#dce0e1);border-radius:2px;transition:transform .16s}.toggle[aria-checked=true] span{transform:translateX(20px)}#timer{margin-left:auto;font-size:25px;color:#008b48;font-weight:750;font-variant-numeric:tabular-nums}.hint{font-size:12px;margin:18px 0 10px;color:#526980}.table-wrap{background:#fff;border:1px solid #c4d1dd;min-height:430px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{font-size:12px;font-weight:600;background:#f5f8fc;border-bottom:1px solid #d1dbe3;padding:11px 12px;white-space:nowrap;position:sticky;top:0;z-index:2}td{padding:11px 12px;border-bottom:1px solid #ecf0f4}tbody tr:nth-child(even){background:#f5f8fc}#tasks tr{cursor:pointer}#tasks tr:hover{background:#e4eef9}#tasks tr.running{background:#d1efdb}.num{text-align:right;font-variant-numeric:tabular-nums}.blank-add{margin:18px;border:0;color:#697f91;background:transparent}.blank-add:hover{color:#173c62}footer{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;gap:14px;font-size:12px}footer button{border:0;background:transparent!important;font-size:12px;font-weight:650;padding:0}footer span{color:#658099;font-size:11px}.report-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}input,select{border:1px solid #bacbd9;border-radius:4px;padding:7px;color:#173c62;background:#fff}#chart{width:max-content;min-width:100%}#chart th:not(:first-child),#chart td:not(:first-child){width:84px;min-width:84px;text-align:center}#chart th:first-child,#chart td:first-child{position:sticky;left:0;min-width:280px;max-width:280px;background:#f6f9fc;z-index:1}#chart th:first-child{z-index:4}#chart td{height:40px;padding:7px 8px}#chart td.today,#chart th.today{background:#fff0bb}#chart td.selected{background:#cee3f6}#chart .block{background:#1365a8;height:17px;border-radius:2px;cursor:pointer}dialog{border:1px solid #b9cbd9;border-radius:10px;padding:24px;max-width:540px;width:calc(100% - 32px);color:#173c62;box-shadow:0 24px 80px #0005}dialog::backdrop{background:#07172999}dialog h2{margin-top:0}dialog label{display:block;font-size:12px;margin:10px 0}dialog input{display:block;width:100%;margin-top:4px}.dates{display:flex;gap:16px}.dates>*{flex:1}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.dialog-actions button[type=submit]{color:#fff;background:#173c62}#context{position:fixed;z-index:20;background:#fff;box-shadow:0 8px 28px #0003;border:1px solid #bccddd;min-width:190px;padding:5px;border-radius:5px}#context button{display:block;text-align:left;width:100%;border:0}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:10px 20px;color:#fff;background:#173c62;border-radius:6px;display:none}@media(max-width:750px){body{padding:8px}.demo-note{flex-wrap:wrap;gap:10px}.demo-note span{flex-basis:100%}header{padding:16px;gap:9px;flex-wrap:wrap}header h1{font-size:18px}header strong{font-size:16px}.tabs button{padding:12px}.controls{flex-wrap:wrap}#charge-control{margin-left:6px}section{padding:14px}.table-wrap{min-height:350px}footer{flex-wrap:wrap}footer span{order:3;width:100%}#tasks td{white-space:nowrap}}@media print{body{padding:0;background:white}.demo-note,.menu,header,.tabs,.controls,.hint,.report-controls,footer,#work,dialog,#context{display:none!important}#reports{display:block!important;padding:0}.client{box-shadow:none;background:white}.table-wrap{overflow:visible;border:0;min-height:0}th{position:static}}
[hidden]{display:none!important}
#task-manager { padding: 0; background: #061426; }
#task-manager-module { display: block; width: 100%; height: max(500px, calc(100dvh - 280px)); border: 0; }
@media (max-width: 750px) { #task-manager-module { height: max(420px, calc(100dvh - 330px)); } }
#workspace-warning { max-width: 1320px; margin: 0 auto 18px; padding: 14px; border: 1px solid #bd9548; border-radius: 6px; background: #fce4b9; color: #61441c; font-size: 13px; }
.tabs { flex-wrap: wrap; }
.tabs button[aria-selected="true"] { box-shadow: inset 0 -3px #278edc; }
dialog select { display: block; width: 100%; margin-top: 4px; }
@media (prefers-reduced-motion: reduce) { .toggle span { transition: none; } }
@media print { #task-manager { display: none !important; } }
#chart th:not(:first-child), #chart td:not(:first-child) { width: 120px; min-width: 120px; }
#chart .gantt-heading-note { display: block; margin-top: 10px; color: #63788b; font-size: 11px; font-weight: 400; }
#chart .gantt-available, #chart .gantt-assigned { display: block; margin-top: 6px; font-size: 11px; font-weight: 500; font-variant-numeric: tabular-nums; }
#chart .gantt-available { color: #42657e; }
#chart .gantt-assigned { font-weight: 700; }
#chart .gantt-assigned.overtime { background: #fff0c8; color: #765111; border-radius: 4px; padding: 3px 4px; }
#chart .block { height: auto; min-height: 24px; padding: 3px; color: #fff; font-size: 12px; text-align: center; font-variant-numeric: tabular-nums; }
#chart td:not(:first-child) { position: relative; }
#chart .block { position: relative; z-index: 1; }
#chart td.task-created-date::before, #chart td.task-complete-date::after { content: ""; position: absolute; z-index: 2; top: 2px; bottom: 2px; width: 4px; border-radius: 2px; pointer-events: none; }
#chart td.task-created-date::before { left: 1px; background: #159447; }
#chart td.task-complete-date::after { right: 1px; background: #cf3d45; }
#chart .block.extra-work { background: #fff0c8; color: #765111; }
#chart .block.late-work { background: #fee2e2; color: #8a2330; }
#gantt-paging { display: flex; gap: 12px; align-items: center; margin: 0 0 12px; flex-wrap: wrap; }
#gantt-paging[hidden] { display: none; }
#chart th.off-day:not(.today) { background: #eef2f6; color: #65788b; }
#chart th:first-child, #chart td:first-child { overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 750px) { #chart th:first-child, #chart td:first-child { width: 160px; min-width: 160px; max-width: 160px; } }
#card table { min-width: 960px; }
#card .scheduled-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
#card th[aria-sort] { color: #175789; }
#card th[aria-sort] span { margin-left: 4px; }
@media print { header { display: flex !important; padding: 10px 0 20px; } #work, #card { display: block !important; padding: 0; } #gantt, #gantt-paging, .blank-add { display: none !important; } #card table { min-width: 0; font-size: 10px; } #card th { font-size: 10px; } #card td { white-space: normal; overflow-wrap: anywhere; } #tasks tr { break-inside: avoid; } }
@page { size: landscape; margin: 12mm; }
@media print { html { background: #fff; color-scheme: light; } body { min-height: 100vh; } }
#context .danger-action { color: #9d1c2b; }
#context .danger-action:hover:not(:disabled) { color: #71101c; background: #fde8ea; }
.app-version { margin-left: auto; padding: 5px 9px; border: 1px solid #9eb6ca; border-radius: 999px; background: #f8fbff; color: #526980; font-size: 11px; font-weight: 700; letter-spacing: .04em; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 750px) { .app-version { margin-left: 0; } }

.schedule-mode { display: grid; grid-template-columns: 48px 1fr; column-gap: 10px; align-items: center; margin: 14px 0 2px; padding: 12px; border: 1px solid #c6d4e0; border-radius: 6px; background: #f5f9fc; }
.schedule-mode small { grid-column: 2; color: #526980; line-height: 1.35; margin-top: 3px; }
dialog input:disabled { color: #71808d; background: #e4e8ed; border-color: #c7cdd3; cursor: not-allowed; }
#card .schedule-badge { display: block; width: max-content; margin-top: 3px; padding: 1px 5px; border-radius: 10px; background: #dbeaf7; color: #315f83; font-size: 10px; font-weight: 700; }
#card .schedule-badge.manual { background: #fff0c8; color: #765111; }
#tasks tr.blocked { color: #748596; cursor: not-allowed; }
#tasks tr.blocked td { background: #f0f3f6; }
#tasks .dependency-state { display: block; margin-top: 2px; color: #a04a3a; font-size: 10px; font-weight: 700; }
@media (max-width: 750px) { .dates { display: block; } .schedule-mode { grid-template-columns: 48px 1fr; } }
td.project-cell{min-width:190px;color:#244e74;font-weight:650}td.task-code{white-space:nowrap;color:#0d5b98;font-weight:800;font-variant-numeric:tabular-nums}td.task-title{min-width:185px;font-weight:700;color:#173c62}.task-number-preview{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:10px 12px;border-radius:6px;background:#eaf3fb;color:#5b7287;font-size:12px}.task-number-preview output{color:#0d5b98;font-weight:800;font-size:15px;letter-spacing:.03em;font-variant-numeric:tabular-nums}
