:root{--accent: #2563eb;--accent-soft: #dbeafe;--bg-soft: #f6f7f9;--paper: #ffffff;--ink: #111827;--ink-soft: #6b7280;--line: #eceef1;--danger: #dc2626;--danger-soft: #fee2e2;--ok: #059669;--ok-soft: #d1fae5;--warn: #d97706;--warn-soft: #fef3c7;--shadow-soft: 0 1px 2px rgba(16, 24, 40, .05), 0 12px 32px rgba(16, 24, 40, .08);font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg-soft)}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;background:var(--paper);border-bottom:1px solid var(--line);padding:12px max(20px,calc(50% - 540px))}.logo{font-weight:700;font-size:19px;color:var(--accent);letter-spacing:.2px}.spacer{flex:1}.btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:8px 14px;font-size:13.5px;cursor:pointer;font-family:inherit;text-decoration:none;display:inline-block}.btn:hover{border-color:#c7d2fe}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 3px #2563eb59}.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.btn-danger{color:var(--danger);border-color:#fecaca}.btn-ghost{border-style:dashed;color:var(--ink-soft)}.btn-block{width:100%}.page{max-width:1080px;margin:26px auto 60px;padding:0 20px}.sheet-ghost{background:var(--paper)}.tabs{display:flex;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-soft);padding:0 6px;margin-bottom:18px}.tab{padding:10px 16px;font-size:14px;cursor:pointer;color:var(--ink-soft);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;font-family:inherit}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}.b-todo{background:var(--accent-soft);color:#1d4ed8}.b-wip{background:var(--warn-soft);color:#b45309}.b-sent{background:var(--ok-soft);color:#047857}.b-late{background:var(--danger-soft);color:#b91c1c}.b-arch{background:#e5e7eb;color:#4b5563}.b-neutral{background:#f3f4f6;color:#6b7280}.type-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:6px;background:#eef0f3;color:var(--ink-soft);font-size:11.5px;font-weight:700;padding:0 3px;margin-right:4px}.type-badge.on{background:#e2e8f0;color:#334155}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.board4{grid-template-columns:repeat(4,1fr)}.col-title{font-size:13px;font-weight:700;margin-bottom:4px}.col-count{color:var(--ink-soft);font-weight:500}.col{background:var(--bg-soft);border-radius:10px;padding:12px;min-height:80px}.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:10px;cursor:pointer;box-shadow:0 1px 2px #1018280d}.card:hover{border-color:#c7d2fe}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.card-date{font-size:12.5px;font-weight:600;color:var(--ink-soft)}.card h4{font-size:14px;font-weight:600;margin-bottom:3px;line-height:1.35}.card .who{font-size:12.5px;color:var(--ink-soft)}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:8px}.statut-select{font-size:12.5px;font-family:inherit;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:4px 6px;background:var(--paper);cursor:pointer}.statut-select:hover{border-color:#c7d2fe}.table{width:100%;border-collapse:collapse;background:var(--paper);border-radius:12px;box-shadow:var(--shadow-soft);overflow:hidden}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line)}.table td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:#f8fafc}tr.late td{background:#fff7f7}tr.late:hover td{background:#fff3f3}.evt-date{font-weight:600;white-space:nowrap}.row-title{display:flex;align-items:center;gap:4px;font-weight:600}.who{color:var(--ink-soft)}.strike{text-decoration:line-through;color:var(--ink-soft)}.check{width:18px;height:18px;border-radius:5px;border:1.5px solid #cbd5e1;display:inline-block;vertical-align:middle}.check.done{background:var(--ok);border-color:var(--ok);position:relative}.check.done:after{content:"✓";color:#fff;font-size:11px;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.empty{text-align:center;color:var(--ink-soft);padding:34px 12px!important;cursor:default}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.day{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px;min-height:110px}.day.today{outline:2px solid var(--accent);outline-offset:-2px}.day h5{font-size:12.5px;margin-bottom:2px}.day .dnum{font-size:11px;color:var(--ink-soft)}.pill{margin-top:7px;font-size:12px;font-weight:600;border-radius:7px;padding:6px 8px;background:var(--bg-soft);border:1px solid var(--line);border-left:3px solid var(--accent);cursor:pointer;line-height:1.3}.pill:hover{border-color:#c7d2fe}.pill .who{display:block;font-weight:400;margin-top:2px}.pill.wip{border-left-color:var(--warn)}.pill.done{border-left-color:var(--ok);opacity:.55}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182761;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px;z-index:50;overflow-y:auto}.modal{background:var(--paper);width:540px;max-width:100%;border-radius:14px;box-shadow:0 24px 64px #1018284d;padding:26px 28px 22px;animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.modal h3{font-size:17px;font-weight:700;margin-bottom:18px}.field{margin-bottom:15px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:5px}.field .opt{font-weight:400}.field input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;color:var(--ink);background:var(--paper)}.field input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field .hint{font-size:11.5px;color:var(--ink-soft);margin-top:4px}.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}.types{display:flex;gap:8px;align-items:center}.chip{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:4px 13px;font-size:12.5px;cursor:pointer;color:var(--ink-soft);font-family:inherit;font-weight:600}.chip:hover{border-color:#c7d2fe}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.types .divider{font-size:12px;color:var(--ink-soft);margin-left:2px}.form-err{color:var(--danger);font-size:13px;margin-bottom:12px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;align-items:center;flex-wrap:wrap}.kbd-hint{margin-right:auto;font-size:11.5px;color:var(--ink-soft)}kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:11px;background:var(--bg-soft);font-family:inherit}.modele-row{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.modele-row .hint{font-size:11.5px;color:var(--ink-soft)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--paper);border-radius:14px;box-shadow:var(--shadow-soft);padding:34px 32px;width:360px;max-width:100%}.logo-big{font-weight:700;font-size:26px;color:var(--accent);text-align:center}.login-sub{text-align:center;color:var(--ink-soft);font-size:13px;margin:6px 0 22px}.login-card input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;margin-bottom:12px}.login-card input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.login-err{color:var(--danger);font-size:13px;margin-bottom:12px;text-align:center}.center-note{min-height:100vh;display:grid;place-items:center;color:var(--ink-soft)}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;font-size:13.5px;padding:10px 18px;border-radius:99px;box-shadow:0 8px 24px #10182840;animation:pop .18s ease-out;z-index:60}@media(max-width:860px){.board,.board4{grid-template-columns:1fr}.week{grid-template-columns:repeat(2,1fr)}.duo{grid-template-columns:1fr}.topbar{padding:10px 14px}}
