*,:before,:after{box-sizing:border-box;margin:0;padding:0}button{font-family:inherit;font-size:inherit;color:inherit}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.router-root{width:100%;height:100dvh;position:relative;overflow:hidden}.slide-left-enter-from{transform:translate(100%)}.slide-left-leave-to,.slide-right-enter-from{transform:translate(-100%)}.slide-right-leave-to{transform:translate(100%)}.slide-left-enter-active,.slide-left-leave-active,.slide-right-enter-active,.slide-right-leave-active{width:100%;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;overflow-y:auto}:root{--bg:#f0ebe3;--surface:#fff;--primary:#2d6a4f;--primary-light:#d8efdf;--warn:#c05621;--warn-light:#fdebd0;--text:#1a1a1a;--muted:#6b6b6b;--border:#e0dbd5;--radius:16px;--shadow:0 2px 12px #00000012;-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}html[data-theme=dark]{--bg:#1c1c1e;--surface:#2c2c2e;--primary:#52b788;--primary-light:#1b3a2a;--warn:#e07045;--warn-light:#3a2010;--text:#f0f0f0;--muted:#8e8e93;--border:#3a3a3c;--shadow:0 2px 12px #00000059;--header-gradient:linear-gradient(150deg, #0d2b1e 0%, #1b4332 100%)}:root{--header-gradient:linear-gradient(150deg, #1b4332 0%, #2d6a4f 100%)}body{min-height:100dvh}.app{max-width:430px;height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));flex-direction:column;margin:0 auto;display:flex;overflow-y:auto}.header{background:var(--header-gradient);color:#fff;padding:calc(28px + env(safe-area-inset-top,20px)) 20px 24px}.header-inner{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.greeting{opacity:.75;margin-bottom:4px;font-size:13px}.greeting--btn{cursor:pointer;-webkit-user-select:none;user-select:none;color:#fff;background:0 0;border:none;align-items:center;gap:6px;min-height:32px;padding:4px 0;display:inline-flex}.greeting--btn:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #fff}.dropdown-caret{opacity:.8;font-size:16px;transition:transform .2s;display:inline-block;transform:rotate(-90deg)}.dropdown-caret.open{transform:rotate(90deg)}.user-selector{position:relative}.user-dropdown{z-index:100;background:#fff;border-radius:12px;min-width:180px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 8px 24px #0000002e}.user-option{cursor:pointer;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;transition:background .1s;display:flex}.user-option-info{flex-direction:column;gap:2px;display:flex}.user-option-name{color:var(--text);font-size:14px;font-weight:600}.user-option--active .user-option-name{color:var(--primary)}.user-option-meta{color:var(--muted);text-transform:capitalize;font-size:11px}.user-option:last-child{border-bottom:none}.user-option:active{background:var(--bg)}.user-option:focus-visible{background:var(--bg);outline:2px solid var(--primary);outline-offset:-2px}.user-option--active{color:var(--primary)}.user-check{color:var(--primary);font-size:13px;font-weight:700}.dropdown-enter-active,.dropdown-leave-active{transition:opacity .15s,transform .15s}.dropdown-enter-from,.dropdown-leave-to{opacity:0;transform:translateY(-6px)}.stable-name{letter-spacing:-.3px;font-size:21px;font-weight:700;line-height:1.2}.horse-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;border-radius:50px;flex-shrink:0;align-items:center;gap:5px;padding:8px 14px;font-size:18px;display:flex}.horse-count{font-size:17px;font-weight:700}.horse-badge{cursor:pointer;color:#fff;border:none;min-height:44px;font-family:inherit;transition:opacity .15s}.horse-badge:active{opacity:.75}.horse-badge:focus-visible{outline-offset:2px;outline:2px solid #fff}.content{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex}.chip--link{cursor:pointer;transition:opacity .15s}.chip--link:active{opacity:.7}button.task-row{text-align:left;border:none;width:100%}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-title{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin-bottom:12px;font-size:11px;font-weight:700}.card-title--warn{color:var(--warn)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--primary-light);color:var(--primary);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;border-radius:50px;align-items:center;gap:4px;max-width:220px;min-height:36px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex;overflow:hidden}.chip--link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.chat-card{padding-bottom:12px}.chat{flex-direction:column;gap:12px;display:flex}.msg{flex-direction:column;align-items:flex-start;max-width:78%;display:flex}.msg-row{align-items:flex-end;gap:8px;display:flex}.msg--me .msg-row{flex-direction:row-reverse}.msg-col{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.msg--me .msg-col{align-items:flex-end}.msg--me{align-self:flex-end;align-items:flex-end}.msg-sender{color:var(--muted);margin-bottom:3px;padding-left:4px;font-size:11px;font-weight:600}.msg-bubble{background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 16px 4px;padding:8px 12px;font-size:13px;line-height:1.45}.msg--me .msg-bubble{background:var(--primary);color:#fff;border-color:var(--primary);border-radius:16px 16px 4px}.msg-time{color:var(--muted);margin-top:3px;padding:0 4px;font-size:10px}.chat-card{cursor:pointer;transition:box-shadow .15s}.chat-card:active{box-shadow:0 1px 4px #00000014}.chat-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.card-title--link{justify-content:space-between;align-items:center;display:flex}.card-title-arrow{color:var(--muted);font-size:18px;font-weight:300;line-height:1}.chat-app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.header--chat{padding-top:calc(32px + env(safe-area-inset-top,20px));padding-bottom:16px}.back-btn{color:#fff;cursor:pointer;background:#ffffff2e;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;line-height:1;transition:background .15s,opacity .15s;display:flex}.back-btn:hover{background:#ffffff47}.back-btn:active{opacity:.75}.back-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.chat-title{color:#fff;font-size:18px;font-weight:600}.chat-body{flex-direction:column;flex:1;gap:12px;padding:16px 14px;display:flex;overflow-y:auto}.chat-input-bar{background:var(--surface);border-top:1px solid var(--border);gap:8px;padding:12px 14px;display:flex}.chat-input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:50px;flex:1;padding:10px 16px;font-family:inherit;font-size:14px}.chat-input:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-color:var(--primary)}.send-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:50px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:opacity .15s}.send-btn:active{opacity:.85}.send-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.horse-card{padding:0;overflow:hidden}.horse-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:16px 16px 12px;display:flex}.box-badge{background:var(--primary-light);color:var(--primary);border-radius:50px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:700}.horse-section{border-bottom:1px solid var(--border);padding:12px 16px}.horse-section--last{border-bottom:none}.horse-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:700}.horse-empty{color:var(--muted);font-size:13px;font-style:italic}.horse-item-main{color:var(--text);font-size:13px;font-weight:600}.horse-item-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.tag{border-radius:50px;padding:2px 7px;font-size:11px;font-weight:600}.detail-list{flex-direction:column;list-style:none;display:flex}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--muted);flex-shrink:0;font-size:13px}.detail-value{color:var(--text);text-align:right;font-size:14px;font-weight:500}.detail-row--notes{align-items:flex-start}.detail-value--notes{color:var(--muted);font-size:13px;font-style:italic;font-weight:400}.histo-list{flex-direction:column;gap:4px;list-style:none;display:flex}.histo-row{background:var(--bg);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:12px;display:flex}.histo-date{color:var(--text);font-weight:500}.histo-meta{color:var(--muted)}.tag--active{background:var(--primary-light);color:var(--primary)}.tag--done{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.tag--appt-soon{color:#6366f1;background:#eef2ff}.chip-count{border-radius:50px;flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.chip-time{opacity:.8;white-space:nowrap;margin-left:4px;font-size:11px;font-weight:600}.chip--occup,.chip--avenir{align-items:center;gap:4px;max-width:100%;display:inline-flex;overflow:hidden}.chip-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chip--occup{color:#92400e;background:#fef3c7;border:1px solid #92400e2e}.chip--occup .chip-count{color:#92400e;background:#92400e26}.chip--avenir{color:#4338ca;background:#eef2ff;border:1px solid #4338ca2e}.chip-count--avenir{color:#4338ca;background:#4338ca26}.card-title--appt{color:#4338ca}.done-btn{background:var(--primary);color:#fff;cursor:pointer;text-align:center;border:none;border-radius:12px;width:100%;min-height:48px;padding:14px;font-family:inherit;font-size:.95rem;font-weight:600}.done-btn:active{opacity:.75}.done-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.unassign-btn{color:#92400e;cursor:pointer;text-align:center;background:#fef3c7;border:none;border-radius:12px;width:100%;min-height:48px;padding:14px;font-family:inherit;font-size:.95rem;font-weight:600}.unassign-btn:active{opacity:.75}.unassign-btn:focus-visible{outline-offset:2px;outline:2px solid #92400e}.delete-btn{color:#c0392b;cursor:pointer;text-align:center;background:#c0392b1f;border:none;border-radius:12px;width:100%;min-height:48px;padding:14px;font-family:inherit;font-size:.95rem;font-weight:600}.delete-btn:active{opacity:.75}.delete-btn:focus-visible{outline-offset:2px;outline:2px solid #c0392b}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.btn-cancel{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);cursor:pointer;text-align:center;border-radius:12px;min-height:48px;padding:14px;font-family:inherit;font-size:.95rem;font-weight:600}.btn-cancel:active{opacity:.75}.btn-cancel:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.empty-card{text-align:center;padding:28px 16px}.empty-emoji{margin-bottom:8px;font-size:42px}.empty-title{color:var(--text);font-weight:700}@media (width>=768px){.app{max-width:1200px}.content{grid-template-columns:repeat(2,1fr);align-items:start;gap:14px;padding:18px;display:grid}.content>.empty-card,.content>.chat-card{grid-column:1/-1}.header-inner{width:100%;max-width:960px;margin:0 auto}.chat-body,.chat-input-bar{width:100%;max-width:720px;margin:0 auto}}@media (width>=1024px){.content{grid-template-columns:repeat(3,1fr)}}.tab-bar{background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:430px;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -2px 12px #0000000a}.tab-btn{cursor:pointer;min-height:48px;color:var(--muted);background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;margin:0 2px;padding:6px 4px;font-family:inherit;transition:color .15s,background .15s,transform .15s;display:flex}.tab-btn:active{opacity:.7}.tab-btn:focus{outline:none}.tab-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tab-btn--active{color:var(--primary);background:var(--primary-light)}.tab-btn--active .tab-icon{transform:scale(1.15)}.tab-icon{transform-origin:50%;font-size:20px;line-height:1;transition:transform .15s;position:relative}.tab-label{font-size:11px;font-weight:600}.tab-badge{background:var(--warn);color:#fff;border-radius:50px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:-6px;right:-10px}.tab-badge--progress{color:#fff;background:#22c55e;top:-6px;left:-10px;right:auto}@media (width>=768px){.tab-bar{max-width:960px}}.cloche-notif{top:calc(12px + env(safe-area-inset-top,0px));z-index:60;background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:transform .15s;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000029}.cloche-notif:active{transform:translate(-50%)scale(.92)}.cloche-notif:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.cloche-badge{background:var(--warn);color:#fff;border-radius:50px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:-4px;right:-4px}.toast{left:50%;bottom:calc(72px + env(safe-area-inset-bottom,0px));color:#fff;z-index:200;text-align:center;background:#1a1a1aeb;border-radius:50px;max-width:86vw;padding:12px 18px;font-size:14px;font-weight:500;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,8px)}
