*,:after,:before{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:15px;line-height:1.4;color:#1a1a1a;background:#fafafa}h1{font-size:1.4rem;margin:0 0 .75rem}h2{font-size:1.05rem;margin:1.25rem 0 .5rem}a{color:#1a56db}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid #ddd}.app-header nav{display:flex;flex-wrap:wrap;gap:1rem}.app-header nav a{text-decoration:none;font-weight:600;color:#1a1a1a}.app-header nav a:hover{color:#1a56db}.app-header__user{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:#555}.app-header__user button{font:inherit;padding:.25rem .6rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer}.locale-switcher{display:inline-flex;gap:.25rem}.app-header__user button:disabled{cursor:default;background:#eee;color:#999}.app-content{padding:1rem;max-width:1100px;margin:0 auto}.empty-state{color:#777;font-style:italic}.task-section--overdue h2{color:#b91c1c}.task-list{display:flex;flex-direction:column;gap:2px;border:1px solid #e2e2e2;border-radius:4px;overflow:hidden}.task-row{display:grid;grid-template-columns:2fr 1.3fr 1.3fr auto 1fr;grid-gap:.5rem;gap:.5rem;align-items:center;padding:.45rem .7rem;background:#fff;text-decoration:none;color:inherit;border-bottom:1px solid #f0f0f0}.task-row:last-child{border-bottom:none}.task-row:hover{background:#f5f7fb}.task-row__title{font-weight:600}.task-row__assignee,.task-row__client,.task-row__service{color:#444;font-size:.9rem}[data-state]{font-size:.85rem;font-weight:600;white-space:nowrap}[data-state=overdue]{color:#b91c1c}[data-state=today]{color:#b45309}[data-state=future]{color:#444;font-weight:400}[data-state=closed],[data-state=none]{color:#999;font-weight:400}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:.75rem;padding:.6rem .7rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.filters label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:#444}.filters label.filters__checkbox{flex-direction:row;align-items:center;gap:.4rem}.filters select{font:inherit;padding:.25rem .4rem}.filters button{font:inherit;padding:.3rem .8rem;border:1px solid #1a56db;background:#1a56db;color:#fff;border-radius:4px;cursor:pointer}.obligation-list{display:flex;flex-direction:column;gap:2px;border:1px solid #e2e2e2;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.obligation-row{padding:.45rem .7rem;background:#fff;border-bottom:1px solid #f0f0f0}.obligation-row:last-child{border-bottom:none}.obligation-row__main{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline}.obligation-row__client{font-weight:600}.obligation-row__period,.obligation-row__service{color:#444;font-size:.9rem}.obligation-row__meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.2rem;font-size:.8rem;color:#666}.flag{padding:.05rem .4rem;border-radius:3px;background:#f0f0f0}.flag--warning{font-weight:700;color:#92400e;background:#fef3c7}.task-card__meta{display:grid;grid-template-columns:auto 1fr;grid-gap:.3rem .75rem;gap:.3rem .75rem;margin:.75rem 0 1.25rem;padding:.7rem .9rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.task-card__meta dt{color:#777;font-size:.85rem}.task-card__meta dd{margin:0}.task-card__basis{color:#666;font-size:.85rem}.form-error{padding:.5rem .7rem;margin-bottom:.75rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:4px}.task-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.close-form button{font:inherit;padding:.35rem .9rem;border:1px solid #b91c1c;background:#fff;color:#b91c1c;border-radius:4px;cursor:pointer}.reschedule-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.6rem .7rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.reschedule-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:#444}.reschedule-form input,.reschedule-form textarea{font:inherit;padding:.25rem .4rem}.reschedule-form textarea{min-width:16rem;min-height:2.2rem;resize:vertical}.reschedule-form button{font:inherit;padding:.3rem .8rem;border:1px solid #1a56db;background:#1a56db;color:#fff;border-radius:4px;cursor:pointer}.due-changes,.overdue-asks{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.due-changes li,.overdue-asks li{padding:.4rem .6rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px;font-size:.9rem}.due-changes__item--human{color:#222}.due-changes__item--recompute{color:#6b7280;font-family:ui-monospace,monospace;font-size:.8rem}.client-list{display:flex;flex-direction:column;gap:2px;border:1px solid #e2e2e2;border-radius:4px;overflow:hidden}.client-row{display:grid;grid-template-columns:2fr 1fr 2fr 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:center;padding:.45rem .7rem;background:#fff;text-decoration:none;color:inherit;border-bottom:1px solid #f0f0f0}.client-row:last-child{border-bottom:none}.client-row:hover{background:#f5f7fb}.client-row__name{font-weight:600}.client-row__he,.client-row__owner,.client-row__services{color:#444;font-size:.9rem}.vat-cycle{margin:.75rem 0;padding:.6rem .9rem;background:#eef2ff;border:1px solid #c7d2fe;border-radius:4px;font-size:.95rem}.vat-cycle[data-missing=true]{background:#fef3c7;border-color:#fde68a}.client-card__meta{display:grid;grid-template-columns:auto 1fr;grid-gap:.3rem .75rem;gap:.3rem .75rem;margin:.75rem 0 1.25rem;padding:.7rem .9rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.client-card__meta dt{color:#777;font-size:.85rem}.client-card__meta dd{margin:0}.contact-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.contact-list li{padding:.4rem .6rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px;font-size:.9rem}.client-service{margin-bottom:1rem}.client-service h3{font-size:.95rem;margin:.5rem 0 .4rem}.client-tasks{list-style:none;margin:.3rem 0 0;padding:.3rem .7rem;font-size:.85rem;color:#444}.report-summary{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.25rem}.report-stat{display:flex;flex-direction:column;gap:.15rem;min-width:8rem;padding:.7rem 1rem;background:#fff;border:1px solid #e2e2e2;border-radius:4px}.report-stat__value{font-size:1.6rem;font-weight:700;line-height:1.1}.report-stat__label{color:#666;font-size:.8rem}.report-stat--overdue .report-stat__value{color:#b91c1c}.report-rows{display:flex;flex-direction:column;gap:2px;border:1px solid #e2e2e2;border-radius:4px;overflow:hidden;margin-bottom:1.25rem}.report-row{padding:.5rem .7rem;background:#fff;border-bottom:1px solid #f0f0f0}.report-row:last-child{border-bottom:none}.report-row--overdue{background:#fef2f2}.report-row__main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}.report-row__name{font-weight:700}.report-row__sub{color:#666;font-size:.85rem}.report-row__count{font-size:.85rem;color:#444}.report-row__count--overdue{color:#b91c1c;font-weight:700}.report-row__details{margin-top:.4rem}.report-row__details summary{cursor:pointer;font-size:.85rem;color:#1a56db}.report-overdue-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.report-overdue-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;padding:.4rem .6rem;background:#fafafa;border:1px solid #eee;border-radius:4px;font-size:.85rem}.report-overdue-list__title{font-weight:600}.report-overdue-list__meta{color:#b91c1c}.report-overdue-list__explanation,.report-overdue-list__explanation--reschedule{color:#444}.report-overdue-list__explanation--unverified{color:#444;font-style:italic;border-bottom:1px dashed #999}.report-overdue-list__explanation--recompute{color:#6b7280;font-family:ui-monospace,monospace;font-size:.8rem}.flag--noexplain{padding:.15rem .5rem;font-weight:700;font-size:.75rem;letter-spacing:.03em;text-transform:uppercase;color:#fff;background:#7f1d1d;border-radius:3px}@media (max-width:640px){.app-content{padding:.6rem}.task-row{grid-template-columns:1fr auto;grid-template-areas:"title due" "client client" "service assignee";row-gap:.15rem}.task-row__title{grid-area:title}.task-row__client{grid-area:client}.task-row__service{grid-area:service}.task-row__assignee{grid-area:assignee;text-align:right}.task-row [data-state]{grid-area:due;text-align:right}.client-row{grid-template-columns:1fr auto;grid-template-areas:"name due" "services services" "he owner";row-gap:.15rem}.client-row__name{grid-area:name}.client-row__services{grid-area:services}.client-row__he{grid-area:he}.client-row__owner{grid-area:owner;text-align:right}.client-row [data-state]{grid-area:due;text-align:right}.app-header{flex-direction:column;align-items:stretch}.app-header__user{justify-content:space-between}}