:root{--paper:#faf7f2;--ink:#3a3733;--ink-soft:#8a847b;--accent:#7c8a6e;--line:#e8e2d8}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:17px;line-height:1.55}input,textarea,button{font:inherit;color:inherit}input:not([type=checkbox]):not([type=date]):not([type=time]),textarea{resize:none;background:0 0;border:none;outline:none;width:100%;padding:0}input:focus-visible,textarea:focus-visible{border-bottom:1px solid var(--line)}.brand{letter-spacing:.01em;margin:0 0 .25rem;font-size:1.4rem;font-weight:600}.tagline{color:var(--ink-soft);margin:0 0 2rem}.signin{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.accueil,.espace{max-width:40rem;margin:0 auto;padding:1.5rem 1.25rem 6rem}.topbar{justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;display:flex}.notice{text-align:center;color:var(--ink-soft);padding-top:40vh}.empty{text-align:center;margin-top:3rem}.empty-title{font-weight:500}.empty-body{color:var(--ink-soft)}.brand-lg{font-size:2rem}.cta{background:var(--accent);color:var(--paper);cursor:pointer;border:none;border-radius:2rem;margin-top:1rem;padding:.7rem 1.6rem;font-weight:500}.quiet-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-size:.95rem}.quiet-link:hover{color:var(--accent)}.zone-list{margin:0;padding:0;list-style:none}.zone-row{border:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:.75rem;width:100%;padding:.9rem .25rem;display:flex}.zone-row:hover .zone-name{color:var(--accent)}.zone-emoji{font-size:1.2rem}.zone-name{flex:1;font-weight:500}.zone-count{color:var(--ink-soft);white-space:nowrap;font-size:.85rem}.zone-create{gap:.75rem;margin-top:1.5rem;padding:.5rem .25rem;display:flex}.zone-create input::placeholder{color:var(--ink-soft)}.zone-create button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-weight:500}.zone-header{align-items:center;gap:.6rem;margin:.75rem 0 1.5rem;display:flex}.zone-emoji-lg{font-size:1.6rem}.zone-title{font-size:1.4rem;font-weight:600}.blocks{flex-direction:column;gap:1.1rem;display:flex}.block{padding-right:1.75rem;position:relative}.block-delete,.item-delete{color:#0000;cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:1rem;line-height:1}.block-delete{position:absolute;top:.1rem;right:0}.block:hover .block-delete,.block:focus-within .block-delete,.todo:hover .item-delete,.todo:focus-within .item-delete{color:var(--ink-soft)}.block-title{margin-top:.5rem;font-size:1.15rem;font-weight:600}.block-text{overflow:hidden}.block-reminder{color:var(--ink-soft);margin:0;font-style:italic}.event-title{font-weight:500}.event-when{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;display:flex}.event-when input[type=date],.event-when input[type=time]{color:var(--ink-soft);background:0 0;border:none;padding:0}.event-place{min-width:8rem;color:var(--ink-soft);flex:1;font-size:.9rem}.block-todos ul{margin:.25rem 0 0;padding:0;list-style:none}.todos-title{font-weight:500}.todos-title::placeholder{color:var(--ink-soft);font-weight:400}.todo{align-items:center;gap:.6rem;padding:.25rem 0;display:flex}.todo input[type=checkbox]{appearance:none;border:1.5px solid var(--ink-soft);cursor:pointer;border-radius:50%;flex-shrink:0;place-content:center;width:1.05rem;height:1.05rem;display:grid}.todo input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}.todo input[type=checkbox]:checked:before{content:"✓";color:var(--paper);font-size:.7rem}.todo.done .todo-label{color:var(--ink-soft);text-decoration:line-through}.todo-new{margin-top:.35rem;padding-left:1.65rem}.todo-new::placeholder,.block-text::placeholder,.espace input::placeholder{color:var(--ink-soft);opacity:.7}.add-row{border-top:1px solid var(--line);gap:1.25rem;margin-top:2rem;padding-top:.75rem;display:flex}.zone-footer{text-align:center;margin-top:4rem}.zone-footer .quiet-link{font-size:.85rem}.accueil-footer{flex-direction:column;align-items:center;gap:.5rem;margin-top:4rem;display:flex}.accueil-footer .quiet-link,.footer-hint{color:var(--ink-soft);font-size:.85rem}.feedback-form{gap:.6rem;width:100%;max-width:24rem;display:flex}.feedback-form button{color:var(--accent);cursor:pointer;background:0 0;border:none}.chat-fab{background:var(--accent);color:var(--paper);cursor:pointer;border:none;border-radius:2rem;padding:.7rem 1.3rem;font-weight:500;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 2px 12px #3a37332e}.chat-drawer{background:var(--paper);border:1px solid var(--line);border-bottom:none;border-radius:1rem 1rem 0 0;flex-direction:column;width:min(100%,40rem);height:min(75dvh,34rem);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 24px #3a37331a}.chat-head{justify-content:space-between;align-items:center;padding:.75rem 1rem .5rem;font-weight:600;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.5rem;padding:.5rem 1rem;display:flex;overflow-y:auto}.notice-inline{color:var(--ink-soft);text-align:center}.msg{white-space:pre-wrap;max-width:85%;margin:0}.msg-user{background:#efe9df;border-radius:.9rem .9rem .2rem;align-self:flex-end;padding:.5rem .8rem}.msg-assistant{align-self:flex-start}.msg-thinking{color:var(--ink-soft)}.chat-chips{flex-wrap:wrap;gap:.5rem;padding:.25rem 1rem .5rem;display:flex}.chip{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:1rem;padding:.3rem .8rem;font-size:.85rem}.chip:hover{border-color:var(--accent);color:var(--accent)}.chat-input{padding:.6rem 1rem calc(.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);gap:.6rem;display:flex}.chat-input input{flex:1}.chat-input button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-weight:500}.chat-input button:disabled{color:var(--ink-soft);opacity:.5;cursor:default}.mic{font-size:1.05rem}.mic.recording{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}
