html{background:#f5f7fa}body,#root{min-height:100vh}:root{--navy:#082763;--navy-dark:#041b4d;--border:#d9e1e8;--muted:#65758b;--background:#f5f7fa;--error:#a32323;--timeline-date-width:1500px}*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}body{background:var(--background);color:#17223a;min-width:320px;margin:0;font-family:Inter,Aptos,Segoe UI,Arial,sans-serif}.loading-page,.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-page{background:linear-gradient(135deg,#082763f7,#005050eb)}.auth-card{background:#fff;border-radius:8px;width:min(440px,100%);padding:38px;box-shadow:0 22px 55px #00000038}.brand-mark{background:var(--navy);width:6px;height:62px;margin-bottom:20px}.eyebrow{color:var(--navy);letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px;font-size:.72rem;font-weight:800}h1,h2,p{margin-top:0}h1{color:var(--navy);letter-spacing:-.035em;margin-bottom:4px;font-size:clamp(2rem,4vw,3rem)}.auth-card h1{font-size:2.3rem}.auth-introduction,.header-subtitle,.form-heading p{color:var(--muted)}.auth-form{gap:18px;margin-top:28px;display:grid}label{color:#26334c;gap:7px;font-size:.8rem;font-weight:700;display:grid}input,select{color:#16213a;background:#fff;border:1px solid #cfd8e3;border-radius:4px;width:100%;min-height:40px;padding:8px 10px}input:focus,select:focus{border-color:var(--navy);outline:2px solid #08276324}.primary-button,.secondary-button{border-radius:4px;min-height:40px;padding:8px 14px;font-weight:750}.primary-button{background:var(--navy);border:1px solid var(--navy);color:#fff}.primary-button:hover{background:var(--navy-dark)}.primary-button:disabled{cursor:not-allowed;opacity:.5}.secondary-button{color:var(--navy);background:#fff;border:1px solid #bbc7d5}.full-width{width:100%}.text-button{color:var(--navy);background:0 0;border:0;margin-top:18px;padding:5px 0;font-weight:700;text-decoration:underline}.form-message{color:var(--error);margin:15px 0 0;font-size:.86rem;line-height:1.45}.application-shell{min-height:100vh;padding:24px}.application-header{border-left:6px solid var(--navy);justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:20px;padding:4px 0 4px 14px;display:flex}.application-header h1{font-size:clamp(2rem,3vw,3.1rem)}.header-subtitle{margin-bottom:0;font-weight:700}.header-actions{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.month-control{width:130px}.signed-in-user{max-width:230px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-self:center;font-size:.8rem;overflow:hidden}.error-banner{color:var(--error);background:#fff0f0;border:1px solid #e6bcbc;border-radius:4px;margin-bottom:18px;padding:12px 15px}.control-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"project overlay""deadline deadline";gap:16px;margin-bottom:14px;display:grid}.compact-form{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:end;gap:12px;padding:18px;display:grid}.project-form{grid-area:project;grid-template-columns:minmax(0,1.5fr) minmax(190px,.8fr)}.project-form .form-submit-button{grid-column:1/-1}.overlay-form{grid-area:overlay;grid-template-columns:minmax(130px,.75fr) minmax(150px,1fr) minmax(190px,1.2fr) minmax(190px,1.2fr)}.overlay-form .form-submit-button{grid-column:1/-1}.deadline-form{grid-area:deadline;grid-template-columns:minmax(170px,1.1fr) minmax(180px,1.2fr) 150px minmax(160px,.9fr) minmax(180px,1.1fr) auto}.form-heading{grid-column:1/-1}.form-heading h2{color:var(--navy);margin-bottom:3px;font-size:.95rem}.form-heading p{margin-bottom:0;font-size:.76rem}.legend{flex-wrap:wrap;gap:15px;margin:0 0 13px;padding:0 3px;display:flex}.legend-item{color:#40506a;align-items:center;gap:7px;font-size:.73rem;font-weight:700;display:flex}.legend-swatch{border-radius:1px;width:12px;height:12px}.legend-diamond{width:10px;height:10px;transform:rotate(45deg)}.overlay-swatch{border:1px solid #c5cfd7}.print-title{display:none}.timeline-card{border:1px solid var(--border);background:#fff;border-radius:5px;overflow:hidden;box-shadow:0 5px 18px #182c4b0f}.timeline-scroll-area{overflow-x:auto}.timeline{grid-template-columns:205px var(--timeline-date-width);display:grid;position:relative}.timeline-label-column{z-index:20;border-right:1px solid var(--border);background:#fff;position:sticky;left:0}.timeline-corner{min-height:68px;color:var(--muted);text-transform:uppercase;align-items:end;padding:10px 13px;font-size:.68rem;font-weight:800;display:flex}.timeline-date-area{width:var(--timeline-date-width);position:relative}.timeline-header{border-bottom:1px solid var(--border);height:68px;overflow:hidden}.month-header{z-index:5;position:absolute;inset:0 0 29px}.week-header{z-index:5;border-top:1px solid var(--border);position:absolute;inset:39px 0 0}.month-cell,.week-cell{border-left:1px solid var(--border);justify-content:center;display:flex;position:absolute}.month-cell{color:var(--navy);align-items:center;gap:4px;font-size:.74rem;font-weight:850;top:0;bottom:0}.month-cell small{color:#7b879b;font-size:.52rem;font-weight:700}.week-cell{color:#61718d;align-items:center;font-size:.54rem;font-weight:700;top:0;bottom:0}.timeline-section,.project-row-wrapper{display:contents}.section-label{background:var(--navy);color:#fff;align-items:center;min-height:31px;padding:0 13px;font-size:.7rem;font-weight:800;display:flex}.section-bar{border-bottom:1px solid #fff;min-height:31px;overflow:hidden}.section-fill{z-index:2;background:var(--navy);position:absolute;inset:0}.project-label{border-bottom:1px solid var(--border);color:#31456f;justify-content:space-between;align-items:center;min-height:62px;padding:7px 10px 7px 21px;font-size:.7rem;display:flex}.delete-project-button{color:#9b4d4d;background:0 0;border:0;border-radius:50%;place-items:center;width:22px;height:22px;font-size:1rem;display:grid}.delete-project-button:hover{background:#fff0f0}.project-row{border-bottom:1px solid var(--border);min-height:62px;overflow:hidden}.week-grid-line{z-index:3;pointer-events:none;background:#dfe5eb;width:1px;position:absolute;top:0;bottom:0}.today-line{z-index:12;pointer-events:none;background:#cb7040;width:2px;position:absolute;top:0;bottom:0}.today-line span{color:#a54d25;font-size:.5rem;font-weight:800;position:absolute;top:2px;left:4px}.calendar-overlay{z-index:1;opacity:.82;pointer-events:none;min-width:1px;position:absolute;top:0;bottom:0}.decision-week-block{z-index:8;color:#fff;text-align:center;border:0;border-left:1px solid #ffffffa6;border-right:1px solid #ffffffa6;border-radius:0;flex-direction:column;justify-content:center;align-items:center;min-width:1px;padding:2px 1px;line-height:1.02;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.decision-week-block:hover{filter:brightness(.94)}.decision-week-block strong{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.52rem;font-weight:800;display:block;overflow:hidden}.decision-week-block small{margin-top:2px;font-size:.47rem;display:block}.deadline-diamond{z-index:10;background:0 0;border:0;width:64px;height:28px;padding:0;position:absolute;overflow:visible;transform:translate(-50%)}.deadline-diamond:hover{filter:brightness(.9)}.diamond-marker{width:9px;height:9px;position:absolute;top:0;left:50%;transform:translate(-50%)rotate(45deg)}.diamond-label{white-space:nowrap;justify-items:center;line-height:1;display:grid;position:absolute;top:11px;left:50%;transform:translate(-50%)}.diamond-label strong{text-overflow:ellipsis;text-transform:uppercase;max-width:64px;font-size:.48rem;font-weight:800;overflow:hidden}.diamond-label small{margin-top:2px;font-size:.44rem}.overlay-label-heading{border-top:1px solid var(--border);color:#51617a;text-transform:uppercase;align-items:center;min-height:34px;padding:0 13px;font-size:.66rem;font-weight:800;display:flex}.overlay-label-row{border-top:1px solid var(--border);min-height:34px;overflow:hidden}.calendar-overlay-label{z-index:5;color:#385365;border:1px solid #5069782e;border-radius:2px;justify-content:center;align-items:center;min-width:1px;padding:2px 4px;display:flex;position:absolute;top:4px;bottom:4px;overflow:hidden}.calendar-overlay-label:hover{filter:brightness(.96)}.calendar-overlay-label span{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.5rem;font-weight:800;overflow:hidden}.empty-state{color:var(--muted);text-align:center;padding:60px 30px}@media (width<=1250px){.overlay-form{grid-template-columns:1fr 1fr}.overlay-form .form-submit-button{grid-column:1/-1}.deadline-form{grid-template-columns:1fr 1fr 1fr}.deadline-form .form-heading{grid-column:1/-1}}@media (width<=900px){.control-panel{grid-template-columns:1fr;grid-template-areas:"project""overlay""deadline"}.project-form,.overlay-form,.deadline-form{grid-template-columns:1fr 1fr}.form-heading{grid-column:1/-1}}@media (width<=700px){.application-shell{padding:14px}.application-header{flex-direction:column}.deadline-form,.overlay-form{grid-template-columns:1fr}.form-heading{grid-column:1}}@page{size:landscape;margin:8mm}@media print{html,body{background:#fff;width:100%;min-width:0}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.application-shell{min-height:auto;padding:0}.screen-only{display:none!important}.print-title{border-left:4px solid var(--navy);margin:0 0 5mm;padding-left:4mm;display:block}.print-title h1{margin:0;font-size:18pt}.timeline-card{box-shadow:none;border:0;overflow:visible}.timeline-scroll-area{overflow:visible}.timeline{grid-template-columns:38mm minmax(0,1fr);--timeline-date-width:auto!important;width:100%!important;min-width:0!important}.timeline-label-column{position:relative;left:auto}.timeline-date-area{width:auto;min-width:0}.timeline-corner,.timeline-header{height:14mm;min-height:14mm}.project-label,.project-row{min-height:12mm}.section-label,.section-bar{min-height:7mm}.overlay-label-heading,.overlay-label-row{min-height:8mm}.month-cell{font-size:6pt}.month-cell small,.week-cell{font-size:4.5pt}.project-label,.section-label,.overlay-label-heading{font-size:6pt}.decision-week-block strong,.diamond-label strong{font-size:4.5pt}.decision-week-block small,.diamond-label small,.calendar-overlay-label span{font-size:4pt}button{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.project-title-button{color:#31456f;max-width:160px;font-size:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:2px 0;overflow:hidden}.project-title-button:hover{color:var(--navy);text-decoration:underline}.linked-indicator{color:currentColor;opacity:.75;text-transform:uppercase;margin-top:2px;font-size:.38rem;font-style:normal;font-weight:700}.modal-backdrop{z-index:1000;background:#09183475;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.edit-modal{background:#fff;border-radius:8px;gap:16px;width:min(520px,100%);max-height:calc(100vh - 48px);padding:24px;display:grid;overflow-y:auto;box-shadow:0 24px 70px #00000047}.modal-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.modal-heading h2{color:var(--navy);margin-bottom:0}.modal-close-button{color:#5f6e85;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:1.45rem}.modal-close-button:hover{background:#eef2f6}.modal-actions{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.modal-actions-split{justify-content:space-between}.modal-actions-split>div{gap:10px;display:flex}.danger-button{color:#a32323;background:#fff;border:1px solid #bd5555;border-radius:4px;min-height:40px;padding:8px 14px;font-weight:750}.danger-button:hover{background:#fff1f1}.dependency-note{color:#475875;background:#f1f5fa;border-left:3px solid #7892bb;margin:0;padding:10px 12px;font-size:.76rem;line-height:1.45}@media print{.project-label,.project-row{height:20mm!important;min-height:20mm!important;overflow:visible!important}.decision-week-block{height:20mm!important;top:0!important;bottom:0!important}.deadline-diamond{height:9mm!important;overflow:visible!important}.diamond-label{top:3mm!important;overflow:visible!important}.diamond-label strong,.diamond-label small{text-overflow:clip!important;overflow:visible!important}.project-row .deadline-diamond:nth-of-type(odd){top:2mm!important}.project-row .deadline-diamond:nth-of-type(2n){top:10.5mm!important}.diamond-label strong{font-size:5pt!important;line-height:1.05!important}.diamond-label small{font-size:4.5pt!important;line-height:1.05!important}}
