*{box-sizing:border-box}html,body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f5f6f8;color:#20242a}button,input,select{font:inherit}button,a{cursor:pointer}.hidden{display:none!important}.topbar{height:62px;background:#fff;border-bottom:1px solid #ddd;padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.topbar nav{display:flex;gap:8px}.page{max-width:1100px;margin:auto;padding:20px 16px 80px}.btn{border:0;border-radius:7px;background:#e9edf2;color:#222;padding:9px 13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:#2563eb;color:#fff}.btn.danger{background:#ef4444;color:#fff}.full{width:100%;margin-top:18px}.center{text-align:center}.muted{color:#737b85;font-size:13px}.filters{display:flex;gap:9px;align-items:end;flex-wrap:wrap;background:#fff;border:1px solid #ddd;border-radius:10px;padding:13px}.filters>div{display:flex;flex-direction:column;gap:5px;min-width:130px}.filters .grow{flex:1;min-width:220px}label{display:block;font-size:12px;font-weight:700;color:#626a73;margin-bottom:5px}input,select{height:40px;border:1px solid #cdd3da;border-radius:7px;background:#fff;padding:0 10px;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}.section-head h2{font-size:18px;margin:0}.tab{border:0;background:#e9edf2;padding:8px 12px}.tab.active{background:#fff;box-shadow:0 1px 4px #ccd}.totals{background:#fff;border:1px solid #ddd;border-radius:9px;padding:12px;margin-top:12px}.timeline{position:relative;max-width:1000px;margin:0 auto;padding:8px 0 20px}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#d8dde3;transform:translateX(-50%)}.day{position:relative;margin:0 0 34px;padding-top:28px}.day-marker{position:absolute;left:50%;top:4px;width:15px;height:15px;border-radius:3px;border:2px solid #fff;box-shadow:0 0 0 2px #cdd3da;transform:translateX(-50%);z-index:2}.day-title{text-align:center;text-transform:uppercase;font-size:13px;font-weight:800;color:#60666d;margin:0 0 12px}.day-items{background:transparent;border:0;overflow:visible;max-height:none;display:flex;flex-direction:column;gap:10px;position:relative}.task-row{position:relative;width:42%;min-height:46px;padding:11px 14px;background:#fff;border:1px solid #ddd;border-radius:9px;display:flex;gap:9px;align-items:center;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.03)}.task-row:before{content:"";position:absolute;top:50%;width:19.05%;height:2px;background:#d8dde3;transform:translateY(-50%)}.task-row.side-left{align-self:flex-start;justify-content:flex-start}.task-row.side-left:before{right:-19.05%}.task-row.side-right{align-self:flex-end;justify-content:flex-start}.task-row.side-right:before{left:-19.05%}.task-flag{display:inline-block;width:12px;height:12px;min-width:12px;border-radius:3px;border:2px solid #fff;box-shadow:0 0 0 1px #cdd3da}.task-row.side-left .task-flag{order:3;margin-left:auto}.task-row.side-left .task-title{order:1}.task-row.side-left .task-meta{order:2}.task-row.side-right .task-flag{order:0}.task-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.task-meta{font-size:12px;color:#737b85;white-space:nowrap}.task-row:hover{background:#fafafa}.day-single .task-row{margin-top:2px}.day-single .task-row:before{background:#d8dde3}.day-single .task-row .task-title{font-weight:700}.day-single .task-row.side-left{margin-left:0}.day-single .task-row.side-right{margin-right:0}.loader{
text-align:center;color:#737b85;padding:20px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-box{width:min(390px,100%);background:#fff;border:1px solid #ddd;border-radius:12px;padding:30px}.login-box label{margin-top:14px}.alert{background:#fee2e2;color:#991b1b;padding:10px;border-radius:7px;margin:15px 0;font-size:13px}.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:12px}.backdrop{position:absolute;inset:0;background:rgba(0,0,0,.52)}.modal-card{position:relative;background:#fff;border-radius:13px;width:min(850px,100%);max-height:95vh;overflow:auto;padding:28px 25px 20px}.modal-card.small-modal{width:min(600px,100%)}.close{position:absolute;right:15px;top:8px;background:none;border:0;font-size:32px;color:#737b85}.modal-card>form>label{margin-top:12px}.modal-card>form>input{width:100%}.editor{min-height:145px;border:1px solid #cdd3da;border-radius:7px;padding:12px;outline:0}.toolbar{display:flex;gap:4px;margin-bottom:5px}.toolbar button{border:1px solid #d3d8de;background:#f7f8fa;border-radius:5px;padding:6px 9px}.settings-toggle{display:flex;justify-content:space-between;background:#dceaff;color:#2146a7;padding:12px;margin-top:18px;border-radius:8px;cursor:pointer}.settings-panel{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;background:#f7f8fa;padding:14px}.settings-panel select,.settings-panel input{width:100%}.settings-panel small{font-size:11px;color:#737b85}.roadmap{margin-top:25px}.roadmap h3{font-size:16px}.followup{border-left:2px solid #d7dde4;padding:8px 0 8px 20px;position:relative}.followup:before{content:"";position:absolute;left:-6px;top:12px;width:9px;height:9px;border-radius:50%;background:#3b82f6;border:2px solid #fff;box-shadow:0 0 0 1px #ccc}.followup-date{font-size:11px;color:#8a9199}.followup-note{white-space:pre-wrap;margin-top:3px}.followup-delete{float:right;border:0;background:none;color:#999}.follow-add{display:flex;gap:8px;border-top:1px solid #ddd;padding-top:14px;margin-top:12px}.follow-add input{flex:1}.actions{display:flex;gap:8px;border-top:1px solid #ddd;margin-top:22px;padding-top:16px}.actions .danger{margin-left:auto}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:15px}.full-card{grid-column:1/-1}.card-head{display:flex;align-items:center;justify-content:space-between}.card-head h3{margin:0 0 12px}.admin-row{border-top:1px solid #eee;padding:11px 0;display:flex;gap:10px;align-items:center}.admin-row .grow{flex:1}.admin-actions{display:flex;gap:5px}.status-dot{display:inline-block;width:13px;height:13px;border-radius:3px;vertical-align:middle;margin-right:7px}.user-clients{font-size:12px;color:#666}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:230px;overflow:auto;border:1px solid #ddd;padding:10px;border-radius:7px}.check-list label{font-weight:normal;color:#222;margin:0}.check-list input{height:auto;margin-right:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full-field{grid-column:1/-1}.admin-card textarea{width:100%;min-height:80px;border:1px solid #ccd2d9;border-radius:7px;padding:10px;font:inherit}.color-input{display:flex;gap:8px}.color-input input[type=color]{width:52px;height:40px;padding:2px}.color-input input[type=text]{flex:1}@media(max-width:700px){.topbar{padding:0 12px}.page{padding:12px 9px}.filters>div,.filters .grow{width:100%;min-width:0}.filters>.btn{width:100%}.task-meta{display:none}.settings-panel,.form-grid,.admin-grid{grid-template-columns:1fr}.full-card{grid-column:auto}.modal-card{padding:28px 15px 15px}.actions{flex-wrap:wrap}.actions .danger{margin-left:0}.check-list{grid-template-columns:1fr}}
.hello{display:inline-flex;align-items:center;color:#60666d;font-size:13px;font-weight:700;padding:0 5px}.task-flag{display:inline-block;width:12px;height:12px;min-width:12px;border-radius:3px}.guest-task-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #ddd;padding-bottom:15px}.guest-task-head h2{margin:3px 0;font-size:22px}.guest-label{font-size:11px;color:#7a828b;font-weight:800;letter-spacing:.08em}.guest-long{font-size:13px;color:#6b7280;margin-top:5px}.guest-status{white-space:nowrap;font-weight:700}.guest-meta{display:flex;gap:18px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid #eee;color:#59616a;font-size:13px}.guest-description{padding:18px 0;line-height:1.5}.guest-modal .roadmap{margin-top:10px}.guest-modal .followup-delete{display:none}.roadmap #followups{max-height:300px;overflow-y:auto;padding-right:8px}.roadmap #followups:empty{min-height:0}

@media(max-width:700px){
.timeline{max-width:none;margin:0;padding:8px 0 20px}
.timeline:before{left:15px;transform:none}
.day{padding:28px 0 0 42px;margin-bottom:30px}
.day-marker{left:15px;transform:translateX(-50%)}
.day-title{text-align:left;margin:0 0 12px}
.day-items{width:100%;gap:9px}
.task-row,.task-row.side-left,.task-row.side-right{width:100%;align-self:flex-end;text-align:left}
.task-row:before,.task-row.side-left:before,.task-row.side-right:before{left:-27px;right:auto;width:27px}
.task-row.side-left .task-flag{order:0;margin-left:0}
.task-row.side-left .task-title{order:1}
.task-row.side-left .task-meta{order:2}
.task-row.side-right .task-flag{order:0}
}

/* Neutral day marker; status colors remain on each task flag. */
.day-marker{background:#4b5563!important;display:block}
.day{background:transparent!important}
