:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:#21334b;background:#f5f8fb;font-size:calc(14px + 4pt);line-height:1.6;--line:#dbe4ef;--blue:#174ea6;--green:#008b71}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid var(--line);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}header a{color:#0f3470;text-decoration:none;font-weight:750}header span,.eyebrow{font-size:calc(11px + 4pt);letter-spacing:.16em;color:#64748b}main,.page-intro{max-width:1600px;margin:auto;padding:28px 32px 70px}h1{font-size:calc(30px + 4pt);margin:0}h2{font-size:calc(21px + 4pt);margin:0}h3{font-size:calc(16px + 4pt);margin:0}p{margin:6px 0 16px}.heading,.workspace-title,.project-bar,.toolbar,.chart-heading,.dialog-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.heading{margin-bottom:16px}.storage-note,.hint{font-size:calc(12px + 4pt);color:#64748b}.storage-note{padding:12px 16px;background:#eaf0f7;border-radius:8px}.project-bar{justify-content:flex-start;margin:22px 0}.project-bar label{min-width:min(360px,100%)}button,input,select{font:inherit}button{border:1px solid #b9c9dc;background:white;color:#214366;border-radius:7px;padding:9px 14px;cursor:pointer;font-weight:600}button:hover{background:#edf3fc}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:white}button.primary:hover{background:#123e85}.danger{color:#a52838}button.quiet{border-color:transparent}input,select{padding:9px 10px;border:1px solid #bac9da;background:#fff;border-radius:6px;min-width:0;width:100%;color:#21334b}label{display:flex;flex-direction:column;gap:5px;font-size:calc(13px + 4pt);font-weight:600}input:focus,select:focus,button:focus-visible{outline:3px solid #79b1fb;outline-offset:2px}#workspace{background:white;border:1px solid var(--line);border-radius:12px;padding:24px}.workspace-title p{font-size:calc(12px + 4pt);color:#64748b;margin:3px 0 12px}.badge{border-radius:20px;padding:5px 12px;background:#fff4d4;color:#805a06;font-size:calc(12px + 4pt)}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:14px 0 20px}.tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:10px 3px}.tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}.toolbar{justify-content:flex-start;margin-bottom:26px}.toolbar .primary{margin-left:auto}.chart-heading{margin-bottom:10px}.chart-heading label{flex-direction:row;align-items:center}.chart-heading select{width:130px}.legend{display:flex;gap:16px;margin-right:auto}.legend span{display:flex;align-items:center;gap:5px;font-size:calc(12px + 4pt)}.legend span:before{content:"";width:16px;height:7px;border-radius:3px;background:var(--blue)}.legend .actual:before{background:var(--green)}.legend .interim:before{background:#a66bcb}.gantt{overflow:auto;max-height:570px;border:1px solid var(--line);border-radius:8px;margin:12px 0 24px;position:relative}.chart{display:grid;position:relative;min-width:100%;width:max-content}.chart-label{position:sticky;left:0;background:#fff;z-index:2;width:270px;padding:10px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:104px;overflow:hidden}.chart-label button{display:block;text-align:left;border:0;padding:0;background:none;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-label small{font-size:calc(11px + 4pt);color:#63768b;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-label strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-header{height:54px;background:#f1f5fa;font-weight:600;position:sticky;top:0;z-index:3}.chart-label.chart-header{z-index:4}.timeline{position:relative;height:104px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--unit) - 1px),#eaf0f6 calc(var(--unit) - 1px),#eaf0f6 var(--unit))}.timeline.chart-header{height:54px;background:#f1f5fa}.tick{position:absolute;font-size:calc(10px + 4pt);top:9px;white-space:nowrap;color:#526882;border-left:1px solid #d5dfeb;padding-left:3px}.bar{position:absolute;min-width:3px;height:25px;top:12px;background:var(--blue);border-radius:3px;color:#fff;font-size:calc(10px + 4pt);overflow:hidden;white-space:nowrap;padding:0 3px}.bar.actual{background:var(--green);top:48px}.bar.interim{background:#a66bcb;top:15px;height:25px}.today-line{position:absolute;border-left:2px solid #e7844c;top:0;bottom:0;pointer-events:none;opacity:.65}.interim-row,.interim-row .timeline{height:50px}.interim-row{background:#faf7fd}.empty{text-align:center;padding:60px 24px;color:#62758a}.empty h2,.empty h3{color:#21334b}.details{overflow:auto;margin-top:12px}table{border-collapse:collapse;width:100%;font-size:calc(12px + 4pt);white-space:nowrap}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f1f5fa}td button{padding:5px 8px;font-size:calc(12px + 4pt);margin-right:5px}td small{display:block;color:#697b8f}.error,#notice.error{color:#a52838}#notice:not(:empty){padding:12px;background:#e6f4ee;border-radius:6px;margin:12px 0}#notice.error{background:#fff0ed}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:calc(100vw - 24px);width:460px;max-height:90vh;overflow:auto;color:#21334b;box-shadow:0 24px 80px #102c5140}dialog::backdrop{background:#152f4e66}dialog.wide{width:760px}dialog.review-dialog{width:1200px}dialog h2{margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:8px;margin:20px 0;padding:16px}legend{font-weight:700}.dialog-actions{justify-content:flex-end;margin-top:24px}.check{flex-direction:row;align-items:center;padding-top:10px}.check input{width:18px;height:18px}.interim-form{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.interim-form .form-grid{gap:10px}.interim-form button{margin-top:10px}#history-panel{background:#f3f0fa;padding:16px;border-radius:8px;margin-bottom:16px}#history-panel p{font-size:calc(12px + 4pt);margin:8px 0 0}[hidden]{display:none!important}@media(max-width:700px){header{padding:14px 16px}header span{display:none}main,.page-intro{padding:20px 12px}h1{font-size:calc(24px + 4pt)}#workspace{padding:14px}.toolbar .primary{margin-left:0}.form-grid{grid-template-columns:1fr}.chart-label{width:210px}.tabs{gap:12px}.legend{width:100%}dialog{padding:18px}.project-bar label{width:100%}}

.header-controls{display:flex;justify-content:flex-end;padding:8px 16px;background:#fff}.page-intro{padding-bottom:0}header{flex-wrap:wrap}.tabs{flex-wrap:wrap}.chart-heading select{width:auto}td small{font-size:inherit}#csv-form{margin-top:20px}

.header-controls{justify-content:space-between;gap:12px}.navigation-panel{background:#fff;border-bottom:1px solid var(--line);padding:16px 32px;display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.navigation-panel label{flex:1;max-width:640px;min-width:0}.management-menu{margin:0 0 20px;border:1px solid var(--line);border-radius:8px;background:#fff}.management-menu summary,.display-section summary{cursor:pointer;padding:12px 16px;font-weight:700;color:#214366}.management-menu summary:focus-visible,.display-section summary:focus-visible{outline:3px solid #79b1fb;outline-offset:2px}.management-actions{display:flex;gap:12px;flex-wrap:wrap;padding:4px 16px 16px}.display-section{border-top:1px solid var(--line);margin-top:16px}.display-section summary{padding-left:0}.task-number{display:inline-block;background:#7a3d26;color:#fff;border-radius:4px;padding:0 6px;font-weight:750;line-height:1.45;vertical-align:baseline;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);text-shadow:0 1px 0 rgba(0,0,0,.24)}.task-number.level-1{background:#2d120d}.task-number.level-2{background:#b48d83}.task-number.level-3{background:#d7b9aa}.task-number.level-4{background:#eed6c4}@media(max-width:700px){.navigation-panel{padding:14px 16px}.navigation-panel label{flex-basis:100%}.management-actions{flex-direction:column;align-items:stretch}}

.navigation-panel{display:block;max-width:1000px;margin:0 auto}.navigation-panel header{padding:12px 0}.navigation-panel .page-intro{padding:16px 0}.navigation-panel .management-menu{margin-top:20px}.navigation-panel>label{margin-bottom:12px}.attachment-row{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.attachment-row small{display:block;color:#64748b}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}#file-upload-form{margin-top:20px}#file-upload-form button{margin-top:12px}#file-list{margin-top:16px}

dialog.navigation-panel{display:revert;width:1000px;max-width:calc(100vw - 24px);max-height:90vh;margin:auto;padding:24px;border:1px solid var(--line);border-radius:12px}.menu-account{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.menu-account span{min-width:0}.navigation-panel .management-menu{border:1px solid #9fb2ca;padding:12px;border-radius:8px}.navigation-panel .management-actions{padding:4px;display:flex;flex-wrap:wrap}@media(max-width:700px){dialog.navigation-panel{padding:16px}}
.menu-account-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
body:not(.signed-in) #project-selection,body:not(.signed-in) #management-menu,body:not(.signed-in) #management-hint,body:not(.signed-in) #new-project{display:none!important}
dialog.navigation-panel{position:fixed;inset:0 auto 0 0;margin:0;width:min(1000px,calc(100vw - 24px));max-width:none;max-height:none;height:100dvh;border-radius:0 18px 18px 0;transform:translateX(-105%);transition:transform .24s ease-out;overscroll-behavior:contain}
dialog.navigation-panel:not([open]){display:none}
dialog.navigation-panel.is-open{transform:translateX(0)}
dialog.navigation-panel::backdrop{background:#183b4100;transition:background .24s ease-out}
dialog.navigation-panel.is-open::backdrop{background:#183b4166}
@media(prefers-reduced-motion:reduce){dialog.navigation-panel,dialog.navigation-panel::backdrop{transition:none}}
.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,#eef4ff,#f7f9fc);padding:24px}.auth-card{width:min(100%,420px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 24px;box-shadow:0 16px 35px rgba(17,35,58,.08)}.auth-card h1{margin:0 0 8px;font-size:calc(26px + 4pt)}.auth-form{display:grid;gap:16px;margin-top:18px}.auth-form label{display:grid;gap:6px;font-weight:600}.auth-form input{width:100%}.auth-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}.auth-link{color:var(--blue);text-decoration:none;font-weight:600}.error{color:#a52838;min-height:1.4em}

.navigation-panel .management-actions{display:flex;flex-direction:column;gap:0}.management-row{display:grid;grid-template-columns: minmax(220px, 310px) 1fr;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.management-row:last-child{border-bottom:0}.management-row button{text-align:left}.management-row p{margin:0;color:#64748b;font-size:calc(12px + 4pt)}.project-status{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-left:auto}.gantt[data-density="compact"] .chart-label:not(.chart-header):not(.interim-row),.gantt[data-density="compact"] .timeline:not(.chart-header):not(.interim-row){height:68px}.gantt[data-density="compact"] .chart-label:not(.chart-header){padding-top:4px;padding-bottom:4px}.gantt[data-density="compact"] .chart-label:not(.interim-row) small:last-child{display:none}.gantt[data-density="compact"] .bar{top:5px}.gantt[data-density="compact"] .bar.actual{top:35px}.gantt[data-density="slim"] .chart-label:not(.chart-header):not(.interim-row),.gantt[data-density="slim"] .timeline:not(.chart-header):not(.interim-row){height:40px}.gantt[data-density="slim"] .chart-label:not(.chart-header){padding-top:3px;padding-bottom:3px}.gantt[data-density="slim"] .chart-label:not(.interim-row) small{display:none}.gantt[data-density="slim"] .bar{top:3px;height:15px;line-height:15px}.gantt[data-density="slim"] .bar.actual{top:21px}.gantt[data-density="slim"] .interim-row{height:34px}.gantt[data-density="slim"] .bar.interim{top:5px;height:24px;line-height:24px}@media(max-width:700px){.management-row{grid-template-columns:1fr;gap:8px}.project-status{margin-left:0}}

.inline-task-row td { vertical-align: top; min-width: 150px; background: #f0f7ff; }
.inline-task-row label { display: grid; gap: 4px; margin-bottom: 10px; white-space: normal; }
.inline-task-row input, .inline-task-row select { width: 100%; min-width: 130px; box-sizing: border-box; }
.inline-interim { border-bottom: 1px solid #ccd8e5; margin-bottom: 12px; padding-bottom: 8px; }
