/* DevisClean — palette lumineuse, partagée entre les espaces et le compte. */
:root{--ink:#252544;--green:#6554d9;--lime:#e9e3ff;--bg:#f7f7fc;--muted:#676b83;--line:#e5e5f0;--accent:#6554d9;--accent-hover:#5140bd;--accent-soft:#efebff;--blue:#3265c6;--teal:#167d70;--coral:#c34965;--yellow:#a46b09}
body{background:var(--bg);color:var(--ink)}
a{color:var(--accent)}
input,select,textarea{color:var(--ink);border-color:#d9dbea;background:#fff;accent-color:var(--accent)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d4caff;outline-offset:2px;border-color:var(--accent)}
button:focus-visible,a:focus-visible,.account-nav .sidebar-account-link:focus-visible,.calendar-grid button:focus-visible,.job-agenda-row:focus-visible{outline:3px solid #b6a6f4;outline-offset:3px}
aside{background:#fff;border-right-color:var(--line)}
aside .brand{color:#5140bd}
aside .brand span{color:#73728c}
aside nav button,aside nav>a,.account-nav .sidebar-account-link{color:#61657e}
aside nav button:hover,aside nav>a:hover,.account-nav .sidebar-account-link:hover{background:#f4f0ff;color:#5140bd}
aside nav button.active,aside nav>a.active{background:var(--accent-soft);color:#5140bd;box-shadow:inset 3px 0 0 var(--accent);font-weight:700}
.account-nav{border-top-color:var(--line)}
.aside-bottom,.aside-bottom p{color:#73768c}
.dot{background:#8b6de2;box-shadow:0 0 0 3px #f0ebff}
header{border-bottom-color:var(--line);color:var(--muted)}
header b{color:var(--ink)}
.eyebrow{color:#7560b3}
.primary,.team-create button,.logout-button,.account-actions>a{background:var(--accent);color:#fff;box-shadow:0 3px 8px #6554d91a}
.primary:hover,.team-create button:hover,.logout-button:hover,.account-actions>a:hover{background:var(--accent-hover)}
.secondary{background:#fff;border-color:#dcdced;color:#535577}
.secondary:hover{background:#f2efff;border-color:#cfc5f3;color:#5140bd}
.text-link,.billing-usage a,.plan-free,.calendar-more{color:#6554c1}
.hero{background:linear-gradient(115deg,#ece7ff 0%,#f2eaff 58%,#fff0e5 100%);border:1px solid #e8e0fa}
.hero h2{color:#393164}
.hero p{color:#69627e}
.hero-art{color:#9d76dd}
.hero .text-link{color:#6042ac}
.panel,.stat,.settings,.follow-card,.team-layout>section,.billing-plan,.billing-summary{border-color:var(--line);box-shadow:0 3px 16px #29264c04}
.stats .stat{position:relative;overflow:hidden;border-top:3px solid #81a8ff}
.stats .stat:nth-child(1){background:#f2f6ff}
.stats .stat:nth-child(1) strong{color:#3265b5}
.stats .stat:nth-child(2){background:#edf9f5;border-top-color:#6fcbb3}
.stats .stat:nth-child(2) strong{color:#197967}
.stats .stat:nth-child(3){background:#fff2f3;border-top-color:#f29eb0}
.stats .stat:nth-child(3) strong{color:#b64763}
.stat label,.stat small,.bottom-note,footer{color:#686b82}
.stat strong{font-family:'Segoe UI',Arial,sans-serif}
th{background:#f5f4fb;color:#74738c}
td{border-top-color:#eeeef5}
tbody tr:hover{background:#fcfbff}
.badge{background:#f0eff6;color:#686980}
.badge.Envoyé{background:#eaf1ff;color:#3d64a5}
.badge.Accepté{background:#e4f6ef;color:#26785f}
.badge.Refusé{background:#ffedf0;color:#ad4160}
.badge.Brouillon{background:#f0edf9;color:#78688f}
.status-accept{background:#e4f6ef;color:#26785f;border-color:#c2e4d5}
.status-refuse{background:#ffedf0;color:#ad4160;border-color:#f3cdd7}
.status-accept:hover{background:#d4eee3;color:#23674f}
.status-refuse:hover{background:#fbdde5;color:#9a3553}
.status-date{color:#74738b}
.status-actions button:focus-visible{outline-color:#b6a6f4}
.status-history,.delivery-history,.addon-breakdown,.room-breakdown{border-color:var(--line)}
#sendFeedback{background:#efebfb;color:#62517f}
.room-section,.addon-section{background:#f8f6fd;border-color:#e1daef}
.room-row,.addon-row{border-top-color:#e8e2f3}
.room-mode input[type=checkbox],.addon-choice input[type=checkbox]{accent-color:var(--accent)}
.room-summary,.addon-subtotal{color:#6c53a5}
.success{background:#e7f6f0;color:#26745e}
.error,.job-error{background:#fff0f2;color:#a13e56}
.danger{color:#b44263}
.note,.hint,.page-heading p{color:var(--muted)}
#syncBar{background:#eeebfa;color:#60517f;border-radius:0 0 9px 9px}
#syncStatus[data-error=true]{color:#b44263}
.sync-notice{background:#f4f0ff;border-color:#e2d9f7;color:#5c5277}
.sync-notice button{border-color:#d7cfee;color:#635483;background:#fff}
#saveError{background:#fff0f2;border-color:#f0c8d5}
#syncBusy{background:#f7f7fcd9}
#syncBusy span{border-color:var(--line);box-shadow:0 8px 35px #5140bd14}
#toast{background:#4d3c84;color:#fff;box-shadow:0 7px 22px #30215a20}
dialog{border:1px solid var(--line);box-shadow:0 22px 70px #33275d26}
dialog::backdrop{background:#29234570}
.estimate,.document pre{background:#f2effa}
.job-preview,.job-assignment-section{background:#f8f6fd;border-color:#e1daef}
.job-assignee-choice{border-top-color:#e8e2f3}
.job-assignment-section .job-assignee-choice input[type=checkbox],.calendar-checkbox input{accent-color:var(--accent)}
.job-assignment-summary{background:#f0ebfc;color:#62517f}
.team-member{background:#fff;border-color:#e5e3ef;border-top:3px solid #b39ae8}
.team-member:nth-child(3n+2){border-top-color:#8cb4ef}
.team-member:nth-child(3n){border-top-color:#eba2b6}
.team-member:hover{border-color:#ad95e2;box-shadow:0 5px 20px #6554d914}
.team-profile-link{color:var(--ink)}
.team-profile-link:focus-visible::after{outline-color:#b6a6f4}
.team-disable{background:#fff5f7;border-color:#efcfda;color:#ad4564}
.team-disable:hover{background:#ffe8ee}
.profile-close,.profile-back{color:var(--ink)}
.collaborator-profile-fields dt{color:var(--muted)}
.billing-usage,.billing-notes{background:#efebfb;color:#51456c}
.billing-summary{background:#fff}
.billing-plan.current{border-color:#9a7de0}
.plan-badge{background:#efe9ff;color:#6847ae}
.billing-plan:nth-child(2):not(.current){border-top:3px solid #b5a0ed;padding-top:24px}
.billing-plan:nth-child(3):not(.current){border-top:3px solid #efa2b9;padding-top:24px}
.sandbox-banner{background:#fff5da;border-color:#f1dfaa;color:#805f1a}
.calendar-scroll,.calendar-time-sheet{border-color:#e0ddeb}
.calendar-weekdays,.calendar-time-headings{background:#f0ecfa;color:#686079;border-bottom-color:#e1dced}
.calendar-day{border-color:#e8e4f1}
.calendar-day.outside{background:#faf9fd}
.calendar-day.selected{box-shadow:inset 0 0 0 2px #9b7ce1}
.calendar-day.today .calendar-day-number{background:#7560ce;color:#fff}
.calendar-event,.calendar-time-event{background:#f0eafb;color:#65488b;border-color:#ddceee;border-left-color:#a27ace}
.calendar-event.done,.calendar-time-event.done{background:#e6f6ef;color:#26745f;border-color:#c6e5d8;border-left-color:#55aa89}
.calendar-event.cancelled,.calendar-time-event.cancelled{background:#f4eff3;color:#8a7380;border-color:#e4d9e0;border-left-color:#b39aaa}
.job-agenda-row{color:var(--ink);border-color:#e1daec;border-left-color:#a27ace}
.job-agenda-row.done{border-left-color:#55aa89}
.job-agenda-row.cancelled{border-left-color:#b39aaa}
.job-status{background:#f0eafb;color:#65488b}
.job-status.done{background:#e6f6ef;color:#26745f}
.job-status.cancelled{background:#f4eff3;color:#8a7380}
.calendar-view-switch{background:#ede9f8}
.calendar-view-switch button{color:#756a91}
.calendar-view-switch button.active,.calendar-time-day.selected{background:#7560ce;color:#fff}
.calendar-time-day{color:#686079;border-left-color:#e1dced}
.calendar-hour-scale>div{color:#81788f;border-top-color:#e7e1ef}
.calendar-time-column{border-left-color:#e1dced;background:repeating-linear-gradient(to bottom,transparent 0,transparent 23px,#f0edf6 23px,#f0edf6 24px,transparent 24px,transparent 47px,#e4dfed 47px,#e4dfed 48px)}
.calendar-time-event:focus-visible,.calendar-time-day:focus-visible,.calendar-view-switch button:focus-visible{outline-color:#b6a6f4}
/* Les pages de connexion et de profil partagent la même palette. */
body:not(:has(aside)){background:radial-gradient(ellipse at 0 0,#ece7ff 0,transparent 52%),radial-gradient(ellipse at 100% 100%,#ffeef2 0,transparent 48%),#f7f7fc;color:var(--ink)}
body:not(:has(aside)) .brand{color:#6047b9}
body:not(:has(aside)) section{border-color:var(--line);box-shadow:0 8px 30px #5140bd06}
body:not(:has(aside)) button,body:not(:has(aside)) .button{background:var(--accent);color:#fff}
body:not(:has(aside)) button:hover,body:not(:has(aside)) .button:hover{background:var(--accent-hover)}
body:not(:has(aside)) .secondary{background:#efeafa;color:#635084}
@media print{body,body:not(:has(aside)){background:#fff;color:#111}.document{color:#111}.document h2,.document h3{color:#111}.document pre{background:#f5f5f5}dialog{box-shadow:none;border:0}}
