*{box-sizing:border-box}body{margin:0;background:#f5f7fa;color:#10151d;font:13px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #dce3ec;background:#f9fbfd;border-radius:7px;padding:7px 11px}button:hover{background:#e9eff7}input,select,textarea{border:1px solid #dce3ec;border-radius:6px;padding:9px;background:#fff;color:#25344b}aside{width:188px;position:fixed;inset:0 auto 0 0;background:linear-gradient(110deg,#e4eaf0,#edf1f5);padding:21px 13px;display:flex;flex-direction:column}.traffic{display:flex;gap:7px;margin:0 8px 20px}.traffic i{width:11px;height:11px;border-radius:50%;background:#ff655b}.traffic i:nth-child(2){background:#ffc64f}.traffic i:nth-child(3){background:#39bd66}nav button{display:flex;align-items:center;gap:17px;width:100%;border:0;background:none;text-align:left;height:37px;margin-bottom:0;font-weight:500}nav button.active{background:#d2dce5}nav .icon{font-size:20px;width:19px;text-align:center}.quick{margin-top:auto;color:#5b6b81}.quick small{display:block;margin:15px 6px 5px}.quick button{border:0;display:block;background:none;color:#5b6b81;text-align:left;font-size:12px;padding:8px}.profile{display:flex;gap:10px;align-items:center;margin:28px 6px 0}.profile>b{border-radius:50%;background:#ad8c73;color:white;padding:7px 10px;font-size:18px;font-weight:400}.profile small{display:block;font-size:10px;color:#647184;margin-top:3px}main{margin-left:188px;padding:17px 15px 15px}header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}h1{font-size:24px;letter-spacing:-.7px;margin:0 0 5px}header span{font-size:12px}.header-tools{display:flex;gap:13px;align-items:center}.header-tools input{width: min(33vw,480px);background:#eef2f6;border:0}.header-tools button{height:33px;position:relative;font-size:20px;padding:2px 9px}em{width:7px;height:7px;background:#f45b52;border-radius:50%;position:absolute;right:6px;top:4px}.demo{font-size:10px;color:#8b96a5;margin:10px 0}.demo span{float:right;color:#6e8e82}h2{font-size:16px;margin:0}h3{margin:0;font-size:14px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:13px 0 10px}.cards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:10px;overflow-x:auto;padding-top:3px;padding-bottom:6px;scroll-snap-type:x proximity}.cards>.project{scroll-snap-align:start}.project{border:1px solid #e4e9f0;border-radius:10px;background:linear-gradient(#fff,#fcfdff);overflow:hidden;cursor:pointer;box-shadow:0 1px 2px #243c5b05;transition:transform .15s}.project:hover{transform:translateY(-3px);box-shadow:0 4px 12px #33496618}.photo{height:74px;background-image:url('Дашборд дизайнера интерьеров_ проекты, задачи и финансы.png');background-size:1000% auto;background-position-y:12.1%}.card-body{padding:12px}.project-title{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:650}.number{background:#e6ebf0;border-radius:50%;padding:2px 4px;margin-right:4px}.subtitle{font-size:10px;color:#61718a;margin:5px 0 17px 16px}.progress-label{display:flex;justify-content:space-between;color:#7a8ba2;font-size:10px}.progress{height:6px;background:#e9edf2;border-radius:8px;margin:5px 0 10px;overflow:hidden}.progress i{display:block;height:100%;background:#20a783;border-radius:8px}.stage{font-size:11px;min-height:25px}.deadline{font-size:10px;color:#53637e;margin:2px 0 13px}.badge{display:inline-block;border-radius:20px;padding:5px 9px;font-size:10px;white-space:nowrap}.green{background:#ddf5e8;color:#087b48}.yellow{background:#fff0cc;color:#9c6500}.red{background:#ffe0e3;color:#e33139}.blue{background:#e1ecff;color:#2360bd}.panel{background:linear-gradient(110deg,#fff,#fbfcff);border:1px solid #e3e9f1;border-radius:11px;padding:13px;box-shadow:0 1px 2px #293e5204}.gantt{margin-top:11px;padding-bottom:8px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.toolbar{display:flex;gap:7px;align-items:center}.segmented{background:#edf1f6;border-radius:7px;display:flex;padding:2px}.segmented button{border:0;background:transparent;padding:5px 15px;font-size:11px}.segmented button.selected{background:white;box-shadow:0 1px 3px #25364a15}.timeline{position:relative;margin:0 -13px;min-width:730px}.date-head{margin-left:210px;height:34px;display:grid;grid-template-columns:repeat(28,1fr);font-size:9px;color:#74819a;align-items:end;text-align:center;padding-bottom:5px}.months{margin-left:210px;color:#53637b;display:flex;justify-content:space-between;padding-right:35%;font-size:11px}.gantt-row{display:flex;height:24px;border-top:1px solid #edf1f6;align-items:center}.row-label{width:210px;flex-shrink:0;padding-left:12px;font-size:11px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:12px;background:#48bb91}.track{flex:1;position:relative;height:100%;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100% / 28 - 1px),#edf1f7 calc(100% / 28 - 1px),#edf1f7 calc(100% / 28))}.bar{position:absolute;top:4px;height:16px;border:1px solid #9cdbb8;background:linear-gradient(90deg,#bde8d2,#dff5e9);border-radius:6px;font-size:10px;padding:1px 14px;white-space:nowrap;overflow:hidden;cursor:pointer}.bar:after{content:'◆';position:absolute;right:3px;color:#7ec9a6}.gantt-row:nth-child(4n) .bar{background:linear-gradient(90deg,#ffe08a,#fff1cb);border-color:#ffdc80}.gantt-row:nth-child(4n + 1) .bar{background:linear-gradient(90deg,#acd9ff,#d8edff);border-color:#99caff}.gantt-row:nth-child(4n + 2) .bar{background:linear-gradient(90deg,#ffbfc5,#ffe0e5);border-color:#ffa5b0}.today-line{position:absolute;top:28px;bottom:0;left:calc(210px + (100% - 210px)*.25);border-left:1px solid #fb6968;pointer-events:none}.today-line span{position:absolute;top:-17px;left:-24px;background:#f45251;color:#fff;border-radius:5px;padding:3px 6px;font-size:9px}.bottom-grid{display:grid;grid-template-columns:1.4fr 1fr 1.37fr;gap:11px;margin-top:11px}.count{font-size:10px;border-radius:20px;padding:3px 6px;background:#edf1f7;color:#64748b;margin-left:6px}.add{background:#eaf4ff;color:#1674dd;border-color:#dbecff;font-size:11px}.task{display:flex;align-items:flex-start;gap:11px;padding:12px 3px;border-bottom:1px solid #eff2f6;min-height:49px}.task:last-child{border:0}.task input{accent-color:#20a783;cursor:pointer;margin:2px 0}.task-time{font-size:11px;color:#526681;white-space:nowrap;padding-top:2px}.task-info{flex:1;cursor:pointer}.task-info b{font-size:12px;font-weight:550}.task-info small{display:block;color:#596c87;margin-top:3px;font-size:11px}.priority{font-size:10px;color:#ec4d46;white-space:nowrap;padding-top:3px}.done b{text-decoration:line-through;color:#93a0b1}.calendar-event{margin-left:45px;position:relative;padding:7px;border:1px solid #bcebd0;background:#e2f5eb;border-radius:5px;font-size:11px;margin-bottom:12px;min-height:42px}.calendar-event:nth-child(odd){background:#fff5d8;border-color:#ffebaf}.calendar-event:nth-child(4){background:#ffe6e9;border-color:#ffcbd1}.calendar-event:nth-child(5){background:#e3f2ff;border-color:#c5e7ff}.calendar-event time{position:absolute;left:-42px;top:7px;color:#61738d;font-size:10px}.calendar-event small{display:block;margin-top:3px}.finance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stat{padding:11px;border-radius:7px;background:#e6f6ef}.stat:nth-child(2){background:#fdecef}.stat:nth-child(3){background:#eaf4ff}.stat small{display:block;font-size:9px;color:#52997e;min-height:20px}.stat:nth-child(2) small,.stat:nth-child(2) b{color:#ed383c}.stat:nth-child(3) small{color:#1876e5}.stat b{display:block;font-size:16px;margin-bottom:4px}.stat span{font-size:10px}.tabs{display:flex;gap:17px;overflow:auto;border-bottom:1px solid #edf0f5;margin-top:12px}.tabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;font-size:10px;padding:8px 0;white-space:nowrap;color:#61718b}.tabs button.selected{border-color:#becddd;color:#152031;font-weight:600}.money-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eef1f5;font-size:11px}.money-row time{font-size:10px;color:#566d8c;min-width:72px}.money-row .description{flex:1}.description small{display:block;color:#61718a;margin-top:3px}.money-row strong{white-space:nowrap}.money-row .badge{padding:4px 8px;font-size:9px}.empty{padding:30px;color:#74849b;text-align:center}.list-page{margin-top:18px}.list-page .task{padding:17px 8px}dialog{border:1px solid #dce3ec;border-radius:14px;max-width:650px;width:calc(100% - 36px);padding:25px;box-shadow:0 25px 100px #17314933}dialog::backdrop{background:#24364c66;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-heading button{border:0;background:none;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#52617a}label.wide{grid-column:1/-1}textarea{min-height:70px}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.primary{color:#fff;background:#21896e;border-color:#21896e}.primary:hover{background:#16755c}.muted{color:#65748c;font-size:12px;line-height:1.7}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.detail-stats div{padding:15px;background:#f0f5f8;border-radius:7px}.detail-stats b{display:block;margin-top:7px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#243d38;color:white;border-radius:9px;padding:13px 22px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10}.recommendation{padding:13px;background:#f0f6fa;border-radius:7px;margin:10px 0;font-size:12px;line-height:1.6}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px}.day{padding:12px;background:#f4f7fb;border-radius:8px;min-height:260px}.day strong{display:block;margin-bottom:18px}.day .calendar-event{margin-left:0}.day .calendar-event time{position:static;display:block}.availability{display:flex;gap:13px;align-items:end;flex-wrap:wrap;margin:20px 0}.availability input{width:90px}.mobile-title{display:none}@media(min-width:1700px){.photo{height:95px}.card-body{padding:15px}.project-title{font-size:12px}.bottom-grid{margin-top:16px}.task{padding:16px 3px}.gantt-row{height:30px}}@media(max-width:1200px){aside{width:165px}main{margin-left:165px}.cards{gap:6px}.card-body{padding:8px}.project-title{font-size:9px}.badge{font-size:9px;padding:4px 5px}.bottom-grid{grid-template-columns:1.3fr 1fr}.bottom-grid>.panel:last-child{grid-column:1/-1}.header-tools input{width:260px}.priority{display:none}}@media(max-width:850px){aside{width:60px;padding:18px 7px}nav button{font-size:0;padding:9px}nav .icon{font-size:20px}.traffic{gap:3px;margin:0 0 20px}.traffic i{width:9px;height:9px}.quick,.profile{display:none}main{margin-left:60px;padding:15px 10px}.project-title{font-size:11px}.photo{height:75px}.card-body{padding:10px}.header-tools input{width:180px}h1{font-size:20px}.bottom-grid{grid-template-columns:1fr}.bottom-grid>.panel:last-child{grid-column:auto}.gantt{overflow:auto}.timeline{min-width:850px}.week-grid{grid-template-columns:repeat(2,1fr)}.panel-head{flex-wrap:wrap}.demo span{display:none}}@media(max-width:520px){header{flex-direction:column;gap:10px}.header-tools{width:100%}.header-tools input{flex:1;width:0}.form-grid{grid-template-columns:1fr}.form-grid label{grid-column:1}.finance-stats{gap:5px}.stat{padding:8px}.stat b{font-size:13px}.money-row{flex-wrap:wrap}.week-grid{grid-template-columns:1fr}.task-time{font-size:10px}.tabs{gap:12px}}
/* Project phases retain the compact, quiet visual language of the dashboard. */
.project-stages{display:flex;flex-direction:column;gap:10px}.project-stage{border:1px solid #e2e8ef;border-radius:9px;background:#fff;overflow:hidden}.project-stage.current{border-color:#b7d8cc}.project-stage summary{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none;background:#fafcfe}.project-stage summary::-webkit-details-marker{display:none}.project-stage.current summary{background:#eef7f3}.stage-index{background:#e6edf3;color:#60738b;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.stage-summary{flex:1}.stage-summary b{font-size:13px}.stage-summary small{display:block;color:#697c93;font-size:11px;margin-top:5px}.project-stage summary>strong{min-width:36px;text-align:right;font-size:14px;color:#278169}.stage-content{padding:0 14px 14px}.stage-content>.progress{margin-top:14px}.stage-meta{display:flex;justify-content:space-between;color:#7b899c;font-size:11px;margin-bottom:14px}.stage-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.stage-warning{font-size:11px;color:#c47c23}.neutral{background:#eef1f5;color:#748197}.project-stage .actions{margin-top:12px}.project-stage .task-time{display:none}.project-stage .priority{font-size:9px}.project-stage .task-info small{font-size:10px}.deadline{line-height:1.5;min-height:28px}@media(max-width:520px){.project-stage summary{gap:7px;padding:11px}.project-stage summary .badge{font-size:8px}.stage-summary b{font-size:11px}.stage-summary small{font-size:9px}.stage-dates input{min-width:0;width:100%}}
.timeline-period{font-size:11px;color:#53637b;white-space:nowrap}.gantt .row-label{border:0;border-radius:0;background:transparent;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:100%;padding-top:0;padding-bottom:0}.gantt .track{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100% / var(--ticks,28) - 1px),#edf1f7 calc(100% / var(--ticks,28) - 1px),#edf1f7 calc(100% / var(--ticks,28)))}.gantt .bar.phase-bar{background:#edf0f5;border:1px solid #d4dce7;color:#657389;min-width:2px;height:17px;border-radius:4px;top:3px;padding:0 5px;text-align:left;font-size:9px;line-height:15px;isolation:isolate}.gantt .phase-bar::after{content:none}.gantt .phase-bar::before{content:'';position:absolute;inset:0 auto 0 0;width:var(--phase-progress);background:#c8e5d7;z-index:-1}.gantt .phase-bar.phase-active{background:#def3e9;border-color:#8fd0b2;color:#24634b}.gantt .phase-bar.phase-complete{background:#c5e7d5;border-color:#a3d9ba;color:#23684a}.gantt .phase-bar.phase-overdue{background:#ffe5e7;border-color:#efa4aa;color:#b23f4c}.gantt .phase-bar.phase-overdue::before{background:#f6bfc5}.gantt .phase-bar:hover{filter:brightness(.96);box-shadow:0 1px 5px #41546b33;z-index:2}.timeline-legend{display:flex;gap:18px;justify-content:flex-end;color:#6d7e93;font-size:10px;margin-top:10px;flex-wrap:wrap}.timeline-legend>span{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.phase-active-dot{background:#5cbd94}.phase-complete-dot{background:#a2d1b8}.phase-future-dot{background:#bac5d4}.phase-overdue-dot{background:#eb929e}.date-head span{white-space:nowrap;font-size:9px}
/* Stage type determines color consistently across all projects. */
.cards .project{border-top:3px solid var(--project-accent)}.project .number{background:var(--project-soft);color:var(--project-ink)}.project .progress i{background:var(--project-accent)}.project .stage{color:var(--project-ink);font-weight:550}.project:hover{border-color:var(--project-accent)}.project-stage{border-left:3px solid var(--project-accent)}.project-stage summary{background:hsl(var(--project-hue) 42% var(--stage-light))}.project-stage.current{border-color:var(--project-accent);box-shadow:0 0 0 1px var(--project-accent)}.project-stage.current summary{background:var(--project-soft)}.project-stage .stage-index{background:var(--project-fill);color:var(--project-ink)}.project-stage summary>strong{color:var(--project-ink)}.project-stage .progress i{background:var(--project-accent)}.gantt .bar.phase-bar,.gantt .phase-bar.phase-active,.gantt .phase-bar.phase-complete,.gantt .phase-bar.phase-overdue{background:hsl(var(--project-hue) 50% var(--stage-light));border-color:hsl(var(--project-hue) 38% 72%);color:var(--project-ink)}.gantt .phase-bar::before,.gantt .phase-bar.phase-overdue::before{background:var(--project-fill)}.gantt .phase-bar.phase-active{border:2px solid var(--project-accent);line-height:13px;font-weight:600;top:2px;height:19px}.gantt .phase-bar.phase-complete{border-style:dashed}.gantt .phase-bar.phase-overdue{box-shadow:inset 0 -3px #e65e68}.gantt .phase-bar.phase-overdue::after{content:'!';display:block;position:absolute;right:0;top:0;bottom:0;background:#dc515f;color:white;font-size:9px;line-height:15px;width:10px;text-align:center}.phase-active-dot{background:transparent;border:2px solid #64748b;width:9px;height:9px}.phase-complete-dot{background:#94a3b8}.phase-future-dot{background:#e6eaf0;border:1px solid #bac5d4}

.stage-color-legend{justify-content:flex-start;padding-top:8px;border-top:1px solid #edf1f6;gap:16px}

#saveState[data-sync="saved"]{color:#278169}#saveState[data-sync="offline"],#saveState[data-sync="pending"]{color:#aa7b23}#saveState[data-sync="conflict"],#saveState[data-sync="error"]{color:#ce4955}#syncDetails{max-height:300px;overflow:auto;margin-top:15px;font-size:12px}
