:root{--bg:#fff;--fg:#172b4d;--muted:#5e6c84;--border:#dfe1e6;--accent:#0052cc;--accent-fg:#fff;--ok:#064;--err:#bf2600;--dirty:#ff8b00;--row-hover:#f4f5f7;color:var(--fg);font-family:system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}main{max-width:1200px;margin:0 auto;padding:16px}h1{margin:0;font-size:20px}h2{margin:0;font-size:17px}.bar{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.spacer{flex:1}button{font:inherit;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:4px;padding:6px 12px}button:hover:not(:disabled){background:var(--row-hover)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button.commit{background:var(--ok);color:#fff;border-color:var(--ok)}.icon-btn{background:0 0;border:none;padding:4px 8px;font-size:18px}.step{padding:0 8px;line-height:1.4}.toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.main-view{flex-direction:column;height:calc(100vh - 32px);display:flex}.main-view .bar,.main-view .toolbar{flex:none}.table-scroll{flex:auto;min-height:0;overflow:auto}.table-scroll thead th{z-index:5;box-shadow:inset 0 -1px 0 var(--border);background:#fff;position:sticky;top:0}td.prio{white-space:nowrap}td.prio img{vertical-align:middle;margin-right:6px}td.prio span{vertical-align:middle}.error{color:var(--err);background:#ffebe6;border-radius:4px;padding:8px 12px}.msg,.note{color:var(--muted);font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}th{color:var(--muted);font-weight:600}tbody tr:hover{background:var(--row-hover)}td.desc{max-width:360px}td.num{white-space:nowrap;text-align:right}td.num span{text-align:center;min-width:32px;display:inline-block}td.num span.dirty{color:var(--dirty);font-weight:700}a{color:var(--accent)}.settings{flex-direction:column;gap:14px;max-width:640px;display:flex}.settings label{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.settings input{border:1px solid var(--border);font:inherit;border-radius:4px;padding:8px}.field-row{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;display:grid}.field-row .help{height:38px}.actions{gap:8px;display:flex}.overlay{z-index:100;background:#091e4280;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:6px;width:560px;max-height:85vh;padding:16px;overflow:auto;box-shadow:0 10px 30px #00000040}.modal.wide{width:920px}.copied{color:var(--ok);font-weight:700}ul.extract{background:var(--row-hover);border-radius:4px;margin:0;padding:12px 12px 12px 28px}ul.extract li{margin:4px 0}.muted{color:var(--muted)}.copied-toast{background:var(--ok);color:#fff;z-index:1000;border-radius:999px;padding:10px 18px;font-weight:700;animation:.22s ease-out copied-pop;position:fixed;top:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}@keyframes copied-pop{0%{opacity:0;transform:translate(-50%,-12px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.total{margin:0;font-size:14px}.total small{color:var(--muted);font-weight:400}.modal.wide{padding-bottom:0}.monthly-footer{border-top:1px solid var(--border);background:#fff;border-radius:0 0 6px 6px;justify-content:space-between;align-items:center;gap:12px;margin:0 -16px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px #0000000f}.projet-run{white-space:nowrap;min-width:150px}.pr-badge{text-align:center;background:var(--row-hover);min-width:42px;color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.pr-badge.projet{color:#0747a6;background:#deebff}.pr-badge.run{color:#064;background:#e3fcef}.pr-badge{vertical-align:middle}.projet-run .hover-btns{vertical-align:middle;visibility:hidden;gap:4px;margin-left:8px;display:inline-flex}.projet-run:hover .hover-btns{visibility:visible}.projet-run .hover-btns button{padding:2px 8px;font-size:12px;line-height:1.2}.projet-run .hover-btns button.active{background:var(--accent);color:#fff;border-color:var(--accent)}
