:root{--ink:#1d2d38;--muted:#77848d;--line:#e4e9ed;--teal:#087f77;--dark:#163c3c;--bg:#f6f8fa;--left:470px;--row:52px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:Corbel,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:8px;padding:10px 13px;color:var(--ink);font-weight:600;white-space:nowrap}button:hover{background:#edf5f4;border-color:#aacdca}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#066b64;color:white}.danger{color:#b83942;background:#fff5f5}.muted{color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--muted);margin:0 0 12px}h1{font-size:30px;letter-spacing:-.7px;margin:0}h2{font-size:23px;margin:0 0 12px}input,select,textarea{border:1px solid #dbe2e7;border-radius:7px;padding:10px;background:white;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #95d1cb;outline-offset:1px}label{display:flex;flex-direction:column;gap:7px;font-weight:600}small{color:var(--muted)}[hidden]{display:none!important}.brand-mark{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:var(--teal);font-weight:800;color:white;font-size:23px}.sidebar{width:232px;background:white;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:27px 18px;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.5px}.brand span{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:4px;letter-spacing:0}.sidebar .eyebrow{margin:7px 6px -10px}.sidebar nav{flex:1;overflow:auto;min-height:0}.project-link{display:block;text-align:left;width:100%;border:0;margin-bottom:5px;padding:13px 10px;white-space:normal;word-break:break-word}.project-link.active{background:#e7f3f1;color:var(--teal)}.project-link small{display:block;margin-top:5px;font-weight:400}.side-bottom{display:grid;gap:6px}.side-bottom button{border:0;text-align:left;font-size:12px;font-weight:400;padding:9px}.side-bottom small{padding:10px}main{margin-left:232px;padding:36px 32px}header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}header h1{max-width:800px;overflow-wrap:anywhere}header p:last-child{margin:10px 0 0}#saveStatus{background:#eaf4ef;border-radius:20px;padding:7px 12px;font-size:11px;color:#327358;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:25px}.metric{background:white;border:1px solid var(--line);padding:17px 20px;border-radius:12px}.metric b{font-size:25px;display:block;margin-top:10px}.metric span{color:var(--muted);font-size:12px}.metric.alert b{color:#cf6457}.toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.toolbar>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar button,.toolbar select{padding:9px 11px;font-size:12px}.search{flex-direction:row;align-items:center;gap:4px;background:white;border:1px solid var(--line);border-radius:8px;padding-left:9px}.search input{border:0;width:160px;padding:9px;font-weight:400;font-size:12px}.hint{color:var(--muted);font-size:12px;margin:12px 0}.board{border:1px solid var(--line);background:white;border-radius:12px;overflow:auto;max-height:calc(100vh - 355px);min-height:225px;position:relative}.canvas{position:relative;min-width:100%;width:max-content}.head{height:64px;display:flex;position:sticky;top:0;z-index:5;background:#f9fbfc;border-bottom:1px solid var(--line)}.head-left,.task-left,.phase-left{width:var(--left);flex-shrink:0;position:sticky;left:0;z-index:3;background:white;border-right:1px solid var(--line)}.head-left{background:#f9fbfc;display:grid;grid-template-columns:1fr 80px 80px 60px;align-items:center;padding:0 14px;gap:8px;font-size:11px;color:var(--muted)}.head-right{position:relative;overflow:hidden}.month{position:absolute;top:9px;font-weight:700;font-size:12px;white-space:nowrap;padding-left:6px}.tick{position:absolute;bottom:8px;color:var(--muted);font-size:10px;text-align:center}.task-row,.phase-row{display:flex;height:var(--row);border-bottom:1px solid #edf0f2}.phase-row{height:36px;background:#f0f5f5}.phase-left{background:#f0f5f5;padding:11px 14px;font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:#45736e}.task-left{display:grid;grid-template-columns:1fr 80px 80px 60px;align-items:center;padding:0 14px;gap:8px;cursor:pointer;font-size:12px}.task-left:hover{background:#f6faf9}.task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.task-name small{font-weight:400;display:block;font-size:10px;margin-top:4px}.task-left time{font-size:11px;color:#667985}.task-track{position:relative;flex-shrink:0;touch-action:pan-y}.bar{position:absolute;top:12px;height:28px;border-radius:6px;background:#9bd1cb;cursor:grab;touch-action:none;user-select:none;min-width:5px;box-shadow:0 2px 3px #0d766516;overflow:visible}.bar:active{cursor:grabbing}.bar .fill{position:absolute;left:0;top:0;bottom:0;background:#087f77;border-radius:6px;opacity:.75;pointer-events:none}.bar .label{position:absolute;left:9px;top:7px;color:#173e3d;font-size:10px;white-space:nowrap;pointer-events:none;z-index:1}.handle{position:absolute;right:0;width:9px;top:0;bottom:0;cursor:ew-resize;border-radius:0 6px 6px 0;background:#0001}.bar.late{background:#f0b0a7}.bar.late .fill{background:#c86657}.bar.jalon{width:17px!important;height:17px;top:17px;transform:translateX(-8px) rotate(45deg);background:#dda849;border-radius:3px;box-shadow:none}.bar.jalon .label,.bar.jalon .fill,.bar.jalon .handle{display:none}.today-line{position:absolute;width:2px;top:64px;bottom:0;background:#e76b60;z-index:2;pointer-events:none}.connections{position:absolute;top:64px;left:var(--left);pointer-events:none;z-index:1}footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin-top:15px}footer span:first-child{display:flex;gap:8px;align-items:center}.legend-dot{display:inline-block;width:12px;height:8px;background:#8cc8c0;border-radius:2px;margin-left:8px}.legend-diamond{width:8px;height:8px;background:#dda849;transform:rotate(45deg);margin-left:12px}.legend-today{height:12px;width:2px;background:#e76b60;margin-left:12px}.empty{text-align:center;padding:80px 15px}.empty-icon{font-size:40px;color:var(--teal);margin-bottom:20px}.empty p{color:var(--muted);margin-bottom:25px}.empty-list{padding:35px;color:var(--muted);background:white;position:sticky;left:0;width:var(--left)}dialog{border:0;border-radius:16px;padding:28px;width:600px;max-width:95vw;box-shadow:0 15px 80px #112b3b40;max-height:90vh}dialog::backdrop{background:#122b3d66;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-top h2{margin:0}.dialog-top button{border:0;font-size:20px;padding:5px 10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .wide{grid-column:1/-1}.form-grid label{font-size:12px}.form-grid textarea{min-height:70px;resize:vertical}.form-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.form-actions .danger{margin-right:auto}.dialog-text{line-height:1.7;color:#657985}.changes{max-height:290px;overflow:auto;display:grid;gap:10px}.change{padding:10px;background:#f5f8fa;border-radius:7px}.change small{display:block;margin-top:6px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#163c3c;color:white;border-radius:9px;padding:14px 20px;z-index:20;display:none;max-width:90vw}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-card{padding:70px 10vw;background:white;display:flex;flex-direction:column;justify-content:center}.login-card .eyebrow{margin-top:24px}.login-card h1{font-size:40px;line-height:1.2}.login-card form{display:grid;gap:17px;margin:25px 0}.login-card label{font-size:12px}.login-card small{margin-top:20px}.login-art{background:#e4efec;padding:12vw 7vw;display:flex;flex-direction:column;justify-content:center}.login-art>span{font-size:29px;font-weight:700;color:#285752}.login-art p{color:#668b81}.sample{height:240px;position:relative;background:repeating-linear-gradient(90deg,transparent 0 49px,#c4d9d0 49px 50px);margin-top:30px}.sample i{display:block;position:absolute;height:31px;background:#197c70;border-radius:7px;width:45%;left:4%;top:20px}.sample i:nth-child(2){left:28%;top:75px;width:45%;background:#7db2a4}.sample i:nth-child(3){left:56%;top:130px;width:32%;background:#c9a566}.sample i:nth-child(4){left:72%;top:185px;width:20%;background:#285752}#loginError{color:#b83942;margin:0}body.busy .toolbar button{pointer-events:none;opacity:.6}@media(max-width:1100px){main{padding:24px 18px}.sidebar{width:205px}main{margin-left:205px}.metrics{gap:8px}.metric{padding:14px}.board{max-height:60vh}}@media(max-width:700px){.sidebar{position:static;width:100%;padding:16px;gap:12px}.sidebar nav{display:flex;overflow:auto;gap:8px}.project-link{min-width:150px;max-width:220px}.sidebar .eyebrow,.side-bottom small{display:none}.side-bottom{display:flex;flex-wrap:wrap}.side-bottom button{font-size:10px}main{margin:0;padding:22px 12px}.metrics{grid-template-columns:1fr 1fr}.toolbar-right{width:100%}.board{max-height:60vh;--left:340px}.task-left,.head-left{grid-template-columns:1fr 65px 65px 36px;padding:0 9px;gap:4px}.task-left time{font-size:10px}.login{display:block}.login-card{min-height:100vh;padding:35px 9vw}.login-art{display:none}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}header{align-items:start}h1{font-size:25px}footer{flex-wrap:wrap}}@page{size:A3 landscape;margin:12mm}@media print{body{background:white;font-size:10px}.sidebar,.toolbar,.hint,#saveStatus,dialog,#toast{display:none!important}main{margin:0;padding:0}header{margin-bottom:14px}header h1{font-size:22px}.metrics{margin-bottom:15px}.metric{padding:8px 12px}.metric b{font-size:19px;margin-top:4px}.board{max-height:none;min-height:0;overflow:visible;border-radius:0}.canvas{width:100%!important}.head,.head-left,.task-left,.phase-left{position:static}.head-left,.task-left,.phase-left{width:340px}.head-left,.task-left{grid-template-columns:1fr 65px 65px 40px}.connections{left:340px}.bar,.phase-row,.phase-left,.task-track,.metric{print-color-adjust:exact;-webkit-print-color-adjust:exact}.task-row,.phase-row{break-inside:avoid}footer{margin-top:12px}.bar .label{font-size:8px}.today-line{display:none}.search{display:none}}

/* v0.2: readable titles, adjustable task column and uncluttered calendar */
:root{--muted:#536571;--left:588px;--row:68px}
main{padding:26px 24px}.metric{padding:12px 18px}.metric b{margin-top:6px}.metrics{margin-bottom:18px}
.head-left,.task-left{grid-template-columns:minmax(0,1fr) 80px 80px 60px;font-size:13px}
.task-name{white-space:normal;overflow-wrap:anywhere;line-height:18px;overflow:visible;text-overflow:clip}.task-name small{font-size:12px;line-height:16px;color:#526571}.task-left time{font-size:12px;color:#374d5b}
.task-row:nth-child(even) .task-left{background:#f8fafb}.task-row:hover .task-left{background:#edf6f4}.bar{top:50%;transform:translateY(-50%);background:#a9d8d2;border:1px solid #3d948b}.bar .fill{opacity:.35}.bar .label{font-size:11px;top:6px;color:#103b36;font-weight:700}.bar.jalon{top:50%;transform:translate(-8px,-50%) rotate(45deg)}
.phase-left{font-size:12px;color:#285a54}.head-left{font-size:12px;color:#354f5e}.month{font-size:13px}.tick{font-size:11px;color:#435966}
.name-heading{position:relative;padding-right:23px}#columnGrip{position:absolute;right:-7px;top:-16px;height:48px;width:23px;padding:0;border-radius:0;cursor:col-resize;touch-action:none;color:#087f77;background:transparent;border:0;border-right:2px solid #8cbbb5}
.display-settings{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}.display-settings label{flex-direction:row;align-items:center;font-size:12px}.display-settings input{padding:0;width:180px}.display-settings select{padding:5px}.display-settings output{font-size:12px;color:#536571}
@media print{.display-settings,#columnGrip{display:none!important}.metrics{display:none}header{margin-bottom:12px}.head-left,.task-left,.phase-left{width:var(--left)}.head-left,.task-left{grid-template-columns:minmax(0,1fr) 80px 80px 60px;padding:0 14px;gap:8px}.connections{left:var(--left)}.task-name{font-size:13px}.task-name small{font-size:11px}.bar .label{display:none}.month{font-size:11px}.tick{font-size:10px}.head{break-after:avoid}.phase-row{break-after:avoid}.task-left,.head-left{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Adaptive timeline v0.3 */
.head-left,.task-left{grid-template-columns:minmax(0,1fr) 100px 100px 60px}.task-left time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.head-right{flex-shrink:0}.month{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px;border-right:1px solid #dce4ea}.tick{overflow:hidden;white-space:nowrap;text-overflow:clip;padding:0 3px;border-left:1px solid #dce4ea;font-weight:600;line-height:18px}.bar{min-width:7px}.bar.conflict{outline:2px dashed #cf8020;outline-offset:2px}.zoom-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0;background:white;border:1px solid var(--line);border-radius:9px;padding:10px 12px}.zoom-controls>span{font-weight:600;font-size:12px}.zoom-controls input[type=range]{width:190px;padding:0}.zoom-controls output{min-width:52px;font-variant-numeric:tabular-nums}.zoom-controls button{padding:6px 10px}.toggle{flex-direction:row;align-items:center;font-size:12px}.selected{background:#e7f3f1;border-color:#087f77}.planning-advice{font-size:12px;line-height:1.5;color:#46616a;margin:10px 0}.head-left{min-height:64px}
@media(max-width:700px){.head-left,.task-left{grid-template-columns:minmax(0,1fr) 100px 100px 60px;padding:0 14px;gap:8px}.task-left time{font-size:12px}.board{min-height:280px}}
@media print{.zoom-controls,.planning-advice{display:none!important}.head-left,.task-left{grid-template-columns:minmax(0,1fr) 100px 100px 60px}.task-left time{font-size:12px}.month{font-size:11px}.tick{font-size:10px}.bar.conflict{outline:none}}

/* Five calendar levels: the selected hierarchy stays stable while zooming. */
.head{height:78px}.head-left{min-height:78px}.connections,.today-line{top:78px}.calendar-tier{position:absolute;left:0;right:0;height:26px;border-bottom:1px solid #dae3e9;overflow:hidden;background:#f8fafc}.tier-0{top:0;background:#edf4f5;font-weight:700;font-size:13px}.tier-1{top:26px;font-size:11px;font-weight:600}.tier-2{top:52px;font-size:10px;color:#435966}.calendar-cell{position:absolute;top:0;height:26px;display:flex;justify-content:center;align-items:center;border-left:1px solid #dbe4ea;overflow:hidden;white-space:nowrap;padding:0 2px}.task-track{background-color:white}.bar{z-index:3}.connections{z-index:2}.print-board .canvas{position:relative}.print-board .task-row{position:relative}.print-board .task-track{z-index:1}.print-board .connections{z-index:2}.print-board .bar{z-index:3}
@media print{.head{height:78px}.connections,.today-line{top:78px}.calendar-cell{font-size:inherit}.task-track{background-color:#fff}}

/* Labels and links use distinct vertical lanes. */
.diagram-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px;padding:8px 0}.diagram-options>span{font-weight:600}.diagram-name,.diagram-dates{position:absolute;z-index:4;color:#243f4b;font-size:12px;line-height:15px;pointer-events:none;overflow-wrap:anywhere;background:#fffffff2;padding:0 2px}.diagram-name{font-weight:600}.diagram-dates{font-size:11px;color:#536571}.bar{transform:translateY(-50%)}.bar.jalon{transform:translate(-8px,-50%) rotate(45deg)}.task-track{overflow:hidden}.connections{z-index:2}.diagram-options input{margin:0}.print-board .diagram-name,.print-board .diagram-dates{background:white}.print-board .task-track{z-index:auto}
@media print{.diagram-options{display:none!important}.diagram-name,.diagram-dates{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Professional print and screen geometry, compact rows and local connectors. */
@font-face{font-family:AccaanSans;src:url('/fonts/DejaVuSans.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:AccaanSans;src:url('/fonts/DejaVuSans-Bold.ttf') format('truetype');font-weight:700;font-display:swap}body{font-family:AccaanSans,Arial,sans-serif}.task-left{font-size:12px}.task-name{font-size:12px;line-height:16px}.task-name small{font-size:10px;line-height:13px;margin-top:3px}.bar{height:16px;border-radius:3px;background:#b4cee6;border-color:#4a79a6;box-shadow:none}.bar .fill{background:#315f8c;border-radius:2px;opacity:.7}.bar .label{top:1px;font-size:9px}.bar.jalon{width:12px!important;height:12px;border-radius:1px}.diagram-name{font-size:11px;line-height:14px;font-weight:400}.diagram-dates{font-size:10px;line-height:13px}.phase-row{height:30px}.phase-left{padding:8px 14px;font-size:11px;letter-spacing:.4px}.legend-dot{background:#b4cee6}.connections path{stroke:#82909c;stroke-width:1}.calendar-tier{background:#f6f8fb}.tier-0{background:#e8eef5;color:#294662}.tier-1{background:#f0f4f8}.tier-2{background:#f9fafc;font-weight:400}.print-meta{font-variant-numeric:tabular-nums}
.phase-row{height:36px}.phase-left{padding:11px 14px}
.phase-track{position:relative;flex-shrink:0}.summary-bar{position:absolute;top:16px;height:3px;background:#34495e}.summary-bar::before,.summary-bar::after{content:"";position:absolute;top:0;width:3px;height:8px;background:#34495e}.summary-bar::before{left:0}.summary-bar::after{right:0}
/* Shared formatting geometry: screen, preview and browser print. */
@font-face{font-family:AccaanSerif;src:url('/fonts/DejaVuSerif.ttf');font-weight:400;font-display:swap}
@font-face{font-family:AccaanSerif;src:url('/fonts/DejaVuSerif-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:AccaanMono;src:url('/fonts/DejaVuSansMono.ttf');font-weight:400;font-display:swap}
@font-face{font-family:AccaanMono;src:url('/fonts/DejaVuSansMono-Bold.ttf');font-weight:700;font-display:swap}
.board,.print-sheet{--start-width:100px;--end-width:100px}
.head-left,.task-left{grid-template-columns:minmax(0,1fr) var(--start-width) var(--end-width) 60px;gap:0;padding:0 14px}
.task-name,.head-left>span{padding-right:6px}.task-name small{margin-top:3px}.task-left time{white-space:normal;overflow-wrap:anywhere;padding-right:6px}
.date-heading{position:relative}.date-grip{position:absolute;right:0;top:-16px;width:18px;height:48px;border:0;border-right:2px solid #a7b8c8;background:transparent;color:#315f8c;padding:0;border-radius:0;cursor:col-resize;touch-action:none;font-size:11px}
.format-switches,.format-presets{display:flex;gap:10px;flex-wrap:wrap}.format-sample{border:1px solid #d9e2eb;background:#f8fafc;border-radius:8px;padding:18px;min-height:64px;overflow-wrap:anywhere}.form-grid input[type=color]{width:100%;height:41px;padding:4px}.format-presets button{font-size:11px}
.phase-left{overflow-wrap:anywhere;white-space:normal;text-transform:none;letter-spacing:0;padding:8px 14px}.diagram-name,.diagram-dates{padding:0 2px;font-synthesis:style}
@media print{.date-grip{display:none!important}.head-left,.task-left{grid-template-columns:minmax(0,1fr) var(--start-width) var(--end-width) 60px;gap:0;padding:0 14px}}

/* v0.8: a quiet workspace, contextual commands and configurable table. */
:root{--bg:#f5f7fa;--teal:#315f8c;--dark:#203d59;--line:#dfe5ec}
.sidebar{width:200px;padding:22px 14px;gap:18px;background:#fafbfd}.brand{font-size:14px}.brand-mark{width:32px;height:32px;border-radius:8px;font-size:20px}.sidebar .primary{font-size:12px;padding:10px}.project-link{font-size:12px;padding:10px}.project-link.active{background:#e8eff7;color:#284f77}.side-bottom{border-top:1px solid var(--line);padding-top:12px}
#app>main{height:100dvh;min-height:580px;margin-left:200px;padding:20px 22px;display:flex;flex-direction:column;gap:12px;overflow:hidden}main>header{margin:0;flex-shrink:0;align-items:flex-start}header .eyebrow{margin-bottom:5px;font-size:9px}header h1{font-size:24px;letter-spacing:-.4px}header p:last-child{font-size:12px;line-height:1.4;margin-top:5px;max-height:34px;overflow:auto}#saveStatus{font-size:10px;padding:6px 10px}
#workspace{display:flex;flex:1;min-height:0;flex-direction:column;gap:0}.metrics{display:flex;gap:24px;flex-wrap:wrap;margin:0 0 14px;padding:9px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-shrink:0}.metric{background:transparent;border:0;padding:0;border-radius:0;display:flex;align-items:baseline;gap:8px}.metric b{font-size:17px;order:-1;margin:0}.metric span{font-size:10px}.metric small{font-size:10px}
.command-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:10px 10px 0 0;padding:6px 10px;flex-shrink:0}.command-tabs,.command-utilities{display:flex;align-items:center;gap:6px}.command-tabs button{background:transparent;border-color:transparent;border-radius:6px;padding:8px 12px;font-size:12px;font-weight:500}.command-tabs [aria-selected=true]{background:#e9eff7;color:#284f77;font-weight:700}.command-utilities>button{font-size:11px;padding:7px 10px}.command-utilities .search input{width:145px}
.command-panel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:white;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:10px 12px;min-height:54px;flex-shrink:0}.command-panel button{font-size:11px;padding:7px 11px}.command-panel label{font-size:11px}.command-panel select{font-size:11px;padding:6px}.command-divider{height:20px;width:1px;background:#dce3ec;margin:0 3px}.control-caption{color:#647588;font-size:10px}.task-width-control{display:flex;gap:8px;align-items:center}.task-width-control label{flex-direction:row;align-items:center;font-weight:400}.task-width-control input{width:100px;padding:0}.task-width-control output{font-size:10px;color:#647588}
.timeline-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 0;flex-shrink:0}.timeline-controls button,.timeline-controls select{padding:6px 9px;font-size:11px}.timeline-controls input[type=range]{width:130px;padding:0}.timeline-controls output{font-size:10px;min-width:46px;color:#52687e}.planning-help{margin-left:auto;font-size:11px;color:#617180;position:relative}.planning-help summary{cursor:pointer}.planning-help p{position:absolute;right:0;top:10px;width:300px;background:white;padding:16px;border:1px solid var(--line);border-radius:8px;box-shadow:0 5px 25px #203d5920;z-index:15;line-height:1.6}
.board{flex:1;min-height:160px;max-height:none;border-radius:8px;--table-grid:280px 130px 100px 100px 60px}.head-left,.task-left{grid-template-columns:var(--table-grid);gap:0;padding:0 14px}.head-left>span,.table-cell,.task-name{padding-right:10px;min-width:0;overflow-wrap:anywhere}.head-left>span{font-size:10px}.table-cell{font-variant-numeric:tabular-nums;white-space:normal}.head-left{background:#f2f5f9}.task-left{border-right:2px solid #ccd8e5}.task-row:nth-child(even) .task-left{background:#f8fafc}.task-row:hover .task-left{background:#edf3fa}.date-grip,#columnGrip{opacity:0;color:#315f8c;border-right-color:#93aac4}.head-left:hover .date-grip,.head-left:hover #columnGrip,.date-grip:focus,#columnGrip:focus{opacity:1}.date-grip{width:13px;font-size:9px}.task-name{font-weight:600}.phase-left{background:#edf2f8}.planning-advice{background:#fff4df;color:#80551c;border-radius:6px;padding:8px 10px;margin:0 0 8px;font-size:11px}footer{font-size:10px;margin-top:9px;flex-shrink:0}.primary{background:#315f8c;border-color:#315f8c}.primary:hover{background:#244e77}.selected{background:#e9eff7;border-color:#315f8c}
.column-presets{display:flex;gap:8px;margin-bottom:12px}.column-presets button{font-size:11px}.column-list{border:1px solid var(--line);border-radius:8px;padding:0 12px;max-height:300px;overflow:auto}.column-item{display:grid;grid-template-columns:minmax(0,1fr) 100px 70px;align-items:center;gap:12px;border-bottom:1px solid #e8edf3;padding:9px 0}.column-item:last-child{border-bottom:0}.column-item>label:last-of-type{flex-direction:row;align-items:center;font-size:10px;font-weight:400}.column-item input[type=number]{width:65px;padding:6px;font-size:11px}.column-item input[type=text]{width:100%;min-width:0;padding:6px;font-size:11px}.column-item .toggle{font-size:12px}.column-item button{padding:4px 7px;font-size:10px}.add-column{border:1px solid var(--line);border-radius:8px;margin-top:16px;padding:14px}.add-column legend{font-size:12px;font-weight:600}.add-column>button{margin-top:12px;font-size:11px}.add-column p{font-size:11px;color:#52687e;margin-bottom:0}.custom-fields{border:1px solid var(--line);border-radius:7px;padding:12px}.custom-fields summary{cursor:pointer;font-size:12px;font-weight:600}.custom-fields .form-grid{margin-top:14px}
body.planning-focus{overflow:hidden}body.planning-focus .sidebar,body.planning-focus main>header,body.planning-focus .metrics{display:none!important}body.planning-focus #app>main{margin:0;height:100dvh;min-height:0;padding:12px}.planning-focus .board{min-height:0}
@media(max-width:900px){.sidebar{width:170px}#app>main{margin-left:170px;padding:14px}.command-bar{flex-wrap:wrap}.metrics{gap:12px}.metric span{max-width:125px}.command-panel .toggle{font-size:10px}}
@media(max-width:700px){.sidebar{position:static;width:100%;padding:12px}#app>main{margin:0;height:calc(100dvh - 150px);min-height:600px;padding:12px}.side-bottom{display:none}.command-bar{gap:5px}.command-tabs button{padding:7px 9px}.command-utilities{width:100%;justify-content:space-between}.metrics{gap:10px}.metric b{font-size:14px}.metric span{font-size:9px}.column-item{grid-template-columns:minmax(0,1fr) 90px 60px;gap:6px}.column-item button{padding:3px 5px}.timeline-controls input[type=range]{width:95px}.planning-focus #app>main{min-height:0}}
@media print{.command-bar,.command-panel,.timeline-controls,.metrics,.planning-help{display:none!important}#app>main{height:auto;min-height:0;margin:0;padding:0;overflow:visible}.board{overflow:visible}.head-left,.task-left{grid-template-columns:var(--table-grid);padding:0 14px;gap:0}.planning-focus main>header{display:flex!important}}
.column-name{display:flex;align-items:center;gap:8px;min-width:0}.column-name>input{flex:1}.command-tabs button:focus-visible,.date-grip:focus-visible,#columnGrip:focus-visible{outline:2px solid #315f8c;outline-offset:2px}
@media(pointer:coarse){.date-grip,#columnGrip{opacity:1}}
/* On narrow screens a wide table scrolls out of the way of the chart. */
.board.table-overflow .head-left,.board.table-overflow .task-left,.board.table-overflow .phase-left{position:relative;left:auto}
body.busy #addTask,body.busy #quickTask,body.busy #recalculate,body.busy #columns,body.busy #formatting,body.busy #projectMenu{pointer-events:none;opacity:.6}
.head-left,.task-left,.phase-left{border-right:0;box-shadow:inset -1px 0 #ccd8e5}
/* Shared compact row and calendar dimensions. */
.board,.print-sheet{--calendar-row:22px;--header-height:66px}
.head{height:var(--header-height)}.head-left{min-height:var(--header-height)}.connections,.today-line{top:var(--header-height)}
.calendar-area{position:absolute;top:0;height:var(--header-height)}.calendar-tier,.calendar-cell{height:var(--calendar-row)}.tier-0{top:0}.tier-1{top:var(--calendar-row)}.tier-2{top:calc(var(--calendar-row)*2)}
.diagram-dates{white-space:nowrap;padding:0}.diagram-name{padding:0 2px}.phase-left{padding-top:0;padding-bottom:0;display:flex;align-items:center}
@media print{.head{height:var(--header-height)}.head-left{min-height:var(--header-height)}.connections,.today-line{top:var(--header-height)}}
.phase-left{display:block;padding-top:var(--row-padding,2px);padding-bottom:var(--row-padding,2px)}
.table-cell.date-cell{padding-right:4px}

/* Labels share the bar center; the connector lane stays below all text. */
.diagram-name{padding:0;letter-spacing:0}.diagram-dates{font-variant-numeric:tabular-nums}.task-row:hover .task-track{background-color:#f1f6fb}

.task-track{--label-bg:#fff;background-color:var(--label-bg)}.task-row:nth-child(even) .task-track{--label-bg:#f8fafb}.diagram-name,.diagram-dates{background:var(--label-bg,#fff)}.task-row:hover .task-track{--label-bg:#f1f6fb;background-color:var(--label-bg)}
/* One presentation workflow: plan, present, publish. */
.view-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 0 12px;border-bottom:1px solid #e4e9ed;margin-bottom:10px}.view-bar label{flex-direction:row;align-items:center;font-size:11px;color:#617180}.view-bar select{min-width:150px;padding:7px 10px;font-size:12px}.view-bar button{padding:7px 10px;font-size:11px}.view-bar #viewStatus{flex:1}.document-dialog{width:840px;padding:24px}.document-tabs{display:flex;gap:6px;background:#f0f4f8;padding:5px;border-radius:10px;margin:16px 0 20px}.document-tabs button{flex:1;background:transparent;border:0;color:#617180;font-size:12px;padding:10px}.document-tabs button[aria-selected=true]{background:#fff;color:#213649;box-shadow:0 1px 4px #152d3b12}.document-check{padding:13px 16px;background:#eef5f1;border:1px solid #d7e7df;border-radius:9px;color:#335b4c;font-size:12px;line-height:1.5;margin-top:18px}.document-check.invalid{background:#fff4ed;color:#a25330;border-color:#f2d9c9}.document-presets{display:flex;gap:8px;margin-bottom:18px}.document-presets button{font-size:11px;background:#f7f9fc}.saved-view-list{display:grid;gap:8px}.saved-view-item{display:flex;align-items:center;gap:12px;padding:9px;border:1px solid #e4e9ed;border-radius:9px}.saved-view-item input{flex:1;min-width:80px}.saved-view-item button{font-size:11px}.document-dialog .form-grid{gap:16px}.document-dialog .form-actions{position:sticky;bottom:-24px;background:#fff;padding-top:16px;border-top:1px solid #e4e9ed}.planning-focus .view-bar{flex-shrink:0}body.busy #saveView,body.busy #manageViews,body.busy #viewSelect{pointer-events:none;opacity:.6}
@media(max-width:700px){.document-tabs button{font-size:10px;padding:8px 3px}.document-dialog{padding:18px}.view-bar #viewStatus{flex-basis:100%}.document-presets{flex-wrap:wrap}.saved-view-item{flex-wrap:wrap}}

.command-group{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border:0;border-right:1px solid var(--line);padding:0 16px 3px 0;margin:0;min-width:0}.command-group:last-child{border-right:0}.command-group legend{font-size:10px;color:#647588;font-weight:600;padding:0;margin-bottom:7px}.zoom-entry{display:flex;flex-direction:row;align-items:center;gap:4px;font-size:11px;color:#52687e}.timeline-controls .zoom-entry input{width:76px;padding:5px 7px;font-size:11px}

/* Compact work surface: navigation can be hidden without entering fullscreen. */
#app>main{padding:14px 18px;gap:8px;min-height:480px}header h1{font-size:21px;line-height:1.2}header p:last-child{font-size:11px;line-height:1.3;margin-bottom:0}header .eyebrow{margin-bottom:3px}.metrics{margin-bottom:8px;padding:6px 0;gap:20px}.metric b{font-size:15px}.command-panel{min-height:46px;padding:8px 10px;gap:8px}.command-tabs button{padding:7px 12px}.command-group legend{margin-bottom:5px}.view-bar{padding:7px 0;margin-bottom:4px;gap:8px}.view-bar select{padding:5px 8px;font-size:11px}.view-bar button{padding:5px 8px}.timeline-controls{padding:7px 0;gap:6px}.command-group label{gap:4px}footer{margin-top:8px;font-size:10px}
.sidebar{padding:18px 12px;gap:16px}.project-link{padding:9px 8px}.side-bottom button{padding:7px 8px;font-size:11px}.account-info{font-size:10px;color:#617180;display:block;margin-bottom:6px;overflow-wrap:anywhere}.sidebar-toggle{flex-shrink:0;width:32px;height:32px;padding:0;font-size:20px;border-radius:7px}#app>main>header>div{flex:1;min-width:0}#app>main>header{gap:12px}
body.sidebar-collapsed .sidebar{display:none}body.sidebar-collapsed #app>main{margin-left:0}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.user-row small{display:block;margin-top:3px;font-size:11px}.users-list{max-height:45vh;overflow:auto}.read-only .bar{cursor:default}.read-only .handle,.read-only .date-grip{display:none}
@media(max-width:700px){#app>main{margin:0;min-height:440px;padding:10px;height:calc(100dvh - 170px)}body.sidebar-collapsed #app>main{height:100dvh}.sidebar{max-height:170px}.sidebar .brand{display:none}.sidebar .side-bottom{display:flex;flex-wrap:wrap;gap:5px}.account-info{margin:0}.metrics{gap:8px}.metric span{font-size:9px}.view-bar #viewStatus{display:none}.command-group{padding-right:8px;gap:7px}}
@media print{.sidebar-toggle{display:none!important}}

/* Fixed table must always cover chart bars, labels and dependency layers. */
.board .head{z-index:30}.board .head-left{z-index:31}.board .task-left,.board .phase-left{z-index:10;overflow:hidden}.bar .label{left:auto;right:10px;top:50%;transform:translateY(-50%);font-size:9px;color:var(--bar-text,#173e3d);line-height:11px;padding:0 2px;border-radius:2px;background:#ffffffb3}.progress-outside{position:absolute;z-index:4;font-size:9px;line-height:12px;text-align:right;color:#243f4b;background:var(--label-bg,#fff);pointer-events:none}.owner-legend{display:flex;gap:10px;flex-wrap:wrap;max-height:70px;overflow:auto}.owner-legend span,.document-legend>span{display:inline-flex;gap:5px;align-items:center}.owner-legend i,.document-legend i{display:inline-block;width:12px;height:8px;border-radius:2px}.owner-legend:empty{display:none}footer{flex-wrap:wrap}.owner-legend{flex-basis:100%}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 0 7px}.filter-bar label{font-size:10px;flex-direction:row;align-items:center}.filter-bar select,.filter-bar button{padding:5px 8px;font-size:10px}.filter-bar #filterStatus{font-size:10px;color:#617180;margin-left:auto}.color-owner-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:40vh;overflow:auto}.color-owner-list label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.color-owner-list input[type=color]{width:60px;flex-shrink:0}.share-list{display:grid;gap:12px;margin-top:20px;max-height:45vh;overflow:auto}.document-legend{flex-wrap:wrap}.document-legend>span{gap:5px}
@media print{.filter-bar{display:none!important}.board .head-left,.board .task-left,.board .phase-left{position:static}}

.bar .label{color:#173e3d;background:#ffffffe6}
