/* liitoTask — interface, même grammaire que liitoValidation V1.42.4. Couleurs : tokens.css uniquement. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;min-height:320px}
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--liito-ink);background:var(--liito-cream);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
h1,h2,h3{font-family:var(--font-display);color:var(--liito-marine);margin:0 0 .45em;text-wrap:balance}
h1{font-weight:700;font-size:clamp(28px,3.2vw,38px);letter-spacing:-1px;line-height:1.15;margin:6px 0 10px}
h2{font-size:22px;font-weight:700;letter-spacing:-.3px;line-height:1.25}
h3{font-size:18px;font-weight:700}
p{margin:0 0 .8em}
a{color:var(--link);text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
h1,p,a,span{overflow-wrap:anywhere}
.muted,small{color:var(--muted)}
.small{font-size:14px}
.grow{flex:1 1 auto;min-width:0}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.stack>*{min-width:0}
.mt{margin-top:12px}.mb{margin-bottom:12px}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:8px;top:-60px;background:var(--liito-marine);color:#fff;padding:10px 14px;border-radius:var(--r-sm);z-index:100}
.skip-link:focus{top:8px}
.ui-icon{flex:none;vertical-align:middle}

/* — En-tête (comme Validation : marque à gauche, deux boutons à droite) — */
header.app-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px max(6vw,var(--safe-l));padding-right:max(6vw,var(--safe-r));background:var(--header-bg);border-bottom:1px solid var(--hair)}
a.brand{display:inline-flex;align-items:center;gap:12px;min-width:0;min-height:44px;text-decoration:none;color:var(--liito-marine)}
a.brand .logo-wrap{display:block;flex:none;width:48px;height:48px}
a.brand .logo{display:block;width:48px;height:48px}
.brand-text{display:grid;line-height:1.15;min-width:0}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.4px;color:var(--liito-marine)}
.brand-sub{font-size:12px;font-weight:500;color:var(--muted)}
#session{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#session small{font-size:12px;color:var(--eyebrow)}

main{flex:1 0 auto;width:100%;max-width:1600px;margin:28px auto 0;padding:0 max(24px,var(--safe-l)) calc(24px + var(--safe-b)) max(24px,var(--safe-l));min-height:60vh}
main:focus,main:focus-visible{outline:none}
main.bare{max-width:none;margin-top:0}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;padding-bottom:8px}
.top>div:first-child{min-width:0;flex:1 1 320px}
.eyebrow,.top>div>small{display:block;font-size:13px;color:var(--eyebrow);letter-spacing:0}
.top .muted{margin:0}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* — Boutons et champs — */
button,.btn{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 14px;border:1px solid var(--liito-marine);border-radius:var(--r-sm);background:var(--liito-marine);color:#fff;cursor:pointer;text-decoration:none;line-height:1.2;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),var(--shadow-sm);transition:background .15s,box-shadow .15s}
button:hover,.btn:hover{background:#185AA4;border-color:#185AA4;color:#fff}
button:active{box-shadow:inset 0 1px 3px #0002}
button.secondary,.btn.secondary{background:#fff;color:var(--liito-marine);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
button.secondary:hover,.btn.secondary:hover{background:var(--hover);color:var(--liito-marine);border-color:var(--line-strong)}
button:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
button.ghost{background:transparent;border-color:transparent;color:var(--link);box-shadow:none}
button.ghost:hover{background:var(--hover);color:var(--liito-marine);border-color:transparent}
button.small,.btn.small{min-height:44px;padding:8px 12px;font-size:14px}
.icon-btn{padding:0;width:44px}
label{display:block;font-size:14px;margin:16px 0 7px;color:var(--liito-marine);font-weight:600}
input,select,textarea{font:inherit;font-size:16px;width:100%;min-height:44px;padding:11px 12px;color:#24272e;background:#fff;border:1px solid var(--field-border);border-radius:var(--r-sm)}
input::placeholder,textarea::placeholder{color:#5f6c7b}
textarea{min-height:110px;resize:vertical;line-height:1.45}
select{-webkit-appearance:none;appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C2A51' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;text-overflow:ellipsis}
input[type=date]{-webkit-appearance:none;appearance:none}
input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;padding:0;accent-color:var(--liito-marine);flex:none}
.field{margin:0 0 6px}
.field>label:first-child{margin-top:12px}
.hint{font-size:13px;color:var(--muted);margin-top:5px}
.field-error{color:var(--tone-red-fg);font-weight:600;font-size:14px;margin-top:6px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px}
.check{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-weight:500;font-size:15px;cursor:pointer;color:var(--liito-ink)}

/* — Sélecteur de section, puces, filtres, bascule — */
.section-switch{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 20px;padding:0;list-style:none}
.section-switch li{display:contents}
.section-switch a,.section-switch button{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--liito-marine);text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;line-height:1.2}
.section-switch a:hover,.section-switch button:hover{background:var(--hover)}
.section-switch [aria-pressed="true"],.section-switch [aria-current="page"],.section-switch [aria-current="true"],.section-switch [aria-pressed="true"]:hover,.section-switch [aria-current="page"]:hover,.section-switch [aria-current="true"]:hover{background:var(--liito-marine);color:#fff;border-color:var(--liito-marine)}
.section-switch .count{opacity:.8;font-size:.9em}

.flow-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 18px}
.flow-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:56px;padding:10px 14px;text-align:left;background:#fff;color:var(--liito-marine);border:1px solid var(--line-strong);border-radius:var(--r-md);text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),var(--shadow-sm);transition:background .15s,color .15s}
.flow-chip:hover{background:var(--hover);color:var(--liito-marine)}
.flow-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:var(--tone-neutral-bg);color:var(--tone-neutral-fg)}
.flow-label{font-weight:600;font-size:15px;line-height:1.2}
.flow-count{font-family:var(--font-display);font-size:24px;font-weight:700;line-height:1;color:inherit}
.flow-chip[aria-pressed="true"],.flow-chip[aria-pressed="true"]:hover{background:var(--liito-marine);color:#fff;border-color:var(--liito-marine)}
.flow-chip[aria-pressed="true"] .flow-icon{background:rgba(255,255,255,.16);color:#fff}
.flow-todo .flow-icon{background:var(--tone-neutral-bg);color:var(--tone-neutral-fg)}
.flow-in_progress .flow-icon{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}
.flow-waiting .flow-icon{background:var(--tone-amber-bg);color:var(--tone-amber-fg)}
.flow-to_validate .flow-icon{background:var(--tone-violet-bg);color:var(--tone-violet-fg)}
.flow-done .flow-icon{background:var(--tone-green-bg);color:var(--tone-green-fg)}
.flow-overdue .flow-icon{background:var(--tone-red-bg);color:var(--tone-red-fg)}
.flow-note{font-size:13px;color:var(--muted);margin:-6px 0 16px}

.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:12px;background:rgba(255,255,255,.7);border:1px solid var(--hair);border-radius:12px;margin-bottom:12px}
.filters>*{flex:1 1 170px;min-width:0}
.filters .person-tabs{flex:1 1 100%;display:flex;gap:8px;flex-wrap:wrap}
.filters-fold{flex:1 1 100%}
.filters-fold>summary{display:none;align-items:center;min-height:44px;font-weight:600;color:var(--liito-marine);cursor:pointer;list-style:none}
.filters-fold>summary::-webkit-details-marker{display:none}
.filters-fold>summary::after{content:'⌄';margin-left:8px;color:var(--muted)}
.filters-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.filters-row>*{flex:1 1 150px;min-width:0}
.filters-row .search{flex:2 1 240px}
.filters-row .check{flex:0 1 auto}
.filters-row .btn{flex:0 0 auto}
.filters .person-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--liito-marine);text-decoration:none;font-weight:600;font-size:15px}
.filters .person-tabs a:hover{background:var(--hover)}
.filters .person-tabs a[aria-current="true"]{background:var(--liito-marine);color:#fff;border-color:var(--liito-marine)}
.filters .person-tabs .tabs-label{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--eyebrow);flex:none}
.view-switch{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 6px}
.view-switch a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--liito-marine);text-decoration:none;box-shadow:var(--shadow-sm)}
.view-switch a[aria-current="true"]{background:var(--liito-marine);color:#fff;border-color:var(--liito-marine)}
#resultcount{margin:14px 2px 10px;color:var(--muted)}

/* — Carte, liste compacte (comme Validation) — */
.card{background:#fff;border:1px solid var(--hair-soft);border-radius:var(--r-md);padding:22px;margin:0 0 16px;box-shadow:var(--shadow-card)}
.card>h2:first-child,.card>.card-title:first-child{margin-top:0}
.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.card-title h2{margin:0}
#list,.list-card{background:#fff;border:1px solid var(--hair-soft);border-radius:var(--r-md);padding:8px;box-shadow:var(--shadow-card);margin-bottom:16px}
.list-card.flat{padding:4px 8px}
.compact-task{display:block;border-radius:var(--r-sm);margin:0}
.compact-task+.compact-task{border-top:1px solid #edf2f7}
.compact-task summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto 24px;align-items:center;gap:6px 18px;padding:10px 16px;min-height:56px;font-size:14px;color:var(--liito-marine);cursor:pointer}
.compact-task summary::-webkit-details-marker{display:none}
.compact-task:hover{background:#fafcfe}
.compact-task[open]{background:var(--expanded-bg)}
.task-main{display:block;min-width:0}
.task-headline{display:flex;align-items:baseline;gap:8px;min-width:0}
.task-date{flex:none;white-space:nowrap;font-size:13px;font-weight:500;color:#52647b}
.task-date.late{color:var(--tone-red-fg);font-weight:600}
.task-date.none{font-weight:400}
.sep{color:var(--muted)}
.compact-title{padding:3px 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;color:var(--liito-marine);text-decoration:none}
.compact-title:hover{text-decoration:underline}
.task-context{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);margin-top:1px}
.task-context .who{color:var(--liito-ink);font-weight:500}
.task-context .who.me{background:var(--lt-yellow-soft);border-radius:6px;padding:0 6px}
.task-context .who.none{color:var(--tone-amber-fg);font-weight:600}
.content-flag{font-size:12px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.content-flag.tone-neutral{color:var(--tone-neutral-fg)}
.content-flag.tone-blue{color:var(--tone-blue-fg)}
.content-flag.tone-amber{color:var(--tone-amber-fg)}
.content-flag.tone-violet{color:var(--tone-violet-fg)}
.content-flag.tone-green{color:var(--tone-green-fg)}
.content-flag.tone-red{color:var(--tone-red-fg);font-weight:600}
.compact-open{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;border:1px solid #dce3ed;border-radius:8px;background:#fff;color:var(--liito-marine);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.compact-open:hover{background:var(--hover);color:var(--liito-marine)}
.compact-done{display:inline-flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:600;white-space:nowrap;min-height:44px;cursor:pointer;color:var(--liito-marine)}
.compact-done input{width:18px;height:18px}
.compact-delete{width:44px;height:44px;min-height:44px;padding:0;background:#fff;color:var(--liito-marine);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
.compact-delete:hover{background:var(--tone-red-bg);color:var(--tone-red-fg);border-color:var(--tone-red-bd)}
.compact-chevron{text-align:center;color:var(--muted);transition:transform .15s}
.compact-task[open] .compact-chevron{transform:rotate(180deg)}
.compact-expanded{display:flex;align-items:flex-start;gap:24px;padding:16px;border-top:1px solid #dce3ed;flex-wrap:wrap}
.compact-expanded>div{flex:1 1 320px;min-width:0}
.compact-expanded p{margin:0 0 6px;white-space:pre-wrap}
.open-wide{align-self:center}
.progress{height:8px;background:#e3eaf2;border-radius:99px;overflow:hidden;min-width:80px;margin:6px 0}
.progress>span{display:block;height:100%;background:var(--liito-blue)}
.empty{text-align:center;padding:34px 16px;color:var(--muted)}
.empty strong{display:block;color:var(--liito-marine);font-family:var(--font-display);font-size:18px;margin-bottom:4px}
.quick-add{display:block;margin:0 0 14px}
.quick-add label{margin-top:0}

/* — Calendrier (comme Validation) — */
.month-calendar{margin-bottom:20px}
.calendar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.calendar-toolbar h2{margin:0 auto 0 0;text-transform:capitalize;font-size:22px}
.calendar-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:6px}
.calendar-dow span{text-align:center;font-size:12px;color:var(--muted)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.calendar-day{min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#fff;color:var(--liito-marine);border:1px solid rgba(46,57,75,.13);padding:7px;border-radius:12px;font-weight:700;box-shadow:none;font-size:16px}
.calendar-day small{font-size:11px;color:#687380;font-weight:400}
.calendar-day:hover{background:var(--hover);color:var(--liito-marine)}
.calendar-day.has-items{background:rgba(40,126,216,.07)}
.calendar-day.has-late{background:var(--tone-red-bg);border-color:var(--tone-red-bd)}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--lt-yellow)}
.calendar-day.out{visibility:hidden}
.calendar-day[aria-pressed="true"]{background:var(--liito-marine);color:#fff}
.calendar-day[aria-pressed="true"] small{color:#fff}
.calendar-help{font-size:13px;margin:14px 0 0;color:var(--muted)}
.day-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100%);height:100dvh;max-height:100dvh;max-width:100%;border:0;border-left:1px solid #dce3ed;border-radius:20px 0 0 20px;padding:0;background:#f7f9fc;color:var(--liito-marine);box-shadow:-12px 0 48px #0c2a5124}
.day-panel::backdrop{background:#0c2a5133}
.day-panel-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px;background:var(--header-bg);border-bottom:1px solid #dce3ed;z-index:1}
.day-panel-header h2{margin:6px 0;font-size:24px;text-transform:capitalize}
.day-panel-content{padding:20px;display:grid;gap:16px}

/* — Fil d'Ariane et pages profondes — */
.breadcrumbs{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px;color:var(--eyebrow);font-size:14px}
.breadcrumbs .back{min-height:44px;padding:0 12px;font-size:14px;background:#fff;color:var(--liito-marine);border:1px solid var(--line-strong);border-radius:var(--r-sm);display:inline-flex;align-items:center;text-decoration:none;box-shadow:var(--shadow-sm)}
.breadcrumbs .back:hover{background:var(--hover)}
.breadcrumbs strong{color:var(--liito-marine)}
.breadcrumbs .crumb{color:var(--liito-marine);font-weight:700;text-decoration:none}
.breadcrumbs .crumb:hover{text-decoration:underline}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:16px;align-items:start}
.detail-layout>*{min-width:0}
.detail-col{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.detail-col .card{margin:0}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 6px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 10px;border-radius:50px;background:#edf3fa;white-space:nowrap;border:1px solid transparent;font-weight:600;color:var(--liito-marine)}
.badge.tone-neutral{color:var(--tone-neutral-fg);background:var(--tone-neutral-bg);border-color:var(--tone-neutral-bd)}
.badge.tone-blue{color:var(--tone-blue-fg);background:var(--tone-blue-bg);border-color:var(--tone-blue-bd)}
.badge.tone-amber{color:var(--tone-amber-fg);background:var(--tone-amber-bg);border-color:var(--tone-amber-bd)}
.badge.tone-violet{color:var(--tone-violet-fg);background:var(--tone-violet-bg);border-color:var(--tone-violet-bd)}
.badge.tone-green{color:var(--tone-green-fg);background:var(--tone-green-bg);border-color:var(--tone-green-bd)}
.badge.tone-red{color:var(--tone-red-fg);background:var(--tone-red-bg);border-color:var(--tone-red-bd)}
.badge.mine{background:var(--lt-yellow-soft);color:var(--lt-olive-900);border-color:var(--lt-yellow)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 24px;margin:0}
.facts dt{font-size:13px;color:var(--eyebrow);margin:0 0 2px}
.facts dd{margin:0;font-weight:600;color:var(--liito-marine);overflow-wrap:anywhere}
.facts .wide{grid-column:1/-1}
.facts .wide dd{font-weight:400;color:var(--liito-ink);white-space:pre-wrap}
.status-quick{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.status-quick select{width:auto;min-width:180px}
.status-quick label{margin:0}
.edit-card{border-color:var(--liito-blue);border-width:2px}
.edit-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.subtask{display:flex;align-items:center;gap:4px;border-bottom:1px solid #edf2f7;min-height:48px}
.subtask:last-of-type{border-bottom:0}
.subtask .label{flex:1;min-width:0;overflow-wrap:anywhere}
.subtask.done .label{text-decoration:line-through;color:var(--muted)}
.check-box{display:grid;place-items:center;width:44px;height:44px;margin:0;cursor:pointer}
.attachment{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f7}
.attachment:last-child{border-bottom:0}
.thumb{width:56px;height:56px;border-radius:var(--r-sm);background:var(--tone-neutral-bg);display:grid;place-items:center;color:var(--tone-neutral-fg);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.dropzone{border:2px dashed var(--field-border);border-radius:var(--r-md);padding:14px;background:#f7f9fc;text-align:center}
.dropzone.is-over{background:var(--selected);border-color:var(--liito-blue)}
.dropzone label.btn{margin:0}
.upload-item{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px}
.upload-item.err{color:var(--tone-red-fg)}
.comment{padding:12px 0;border-bottom:1px solid #edf2f7}
.comment:last-of-type{border-bottom:0}
.comment-head{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;font-size:13px;color:var(--muted)}
.comment-head strong{color:var(--liito-marine);font-size:14px}
.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}
.comment.is-deleted .comment-body{color:var(--muted);font-style:italic}
.timeline{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 12px 12px;font-size:14px}
.timeline li::before{content:"";position:absolute;left:-23px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--lt-yellow);border:2px solid var(--liito-marine)}
.timeline time{display:block;color:var(--muted);font-size:12px}
.diff-from{text-decoration:line-through;color:var(--muted)}
.link-item{display:flex;align-items:center;gap:8px;min-height:44px;flex-wrap:wrap}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:14px;margin:0}
.kv dt{color:var(--eyebrow)}
.kv dd{margin:0;overflow-wrap:anywhere}

/* — Administration (cartes comme Validation) — */
.admin-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.admin-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;width:100%;min-height:96px;padding:22px;text-align:left;background:#fff;color:var(--liito-marine);border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 20px #0C2A5110;text-decoration:none}
.admin-card:hover{background:var(--hover);color:var(--liito-marine)}
.admin-card .ui-icon{width:30px;height:30px;color:var(--liito-blue)}
.admin-card strong{display:block;font-family:var(--font-display);font-size:20px}
.admin-card span span{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:16px 0}
.project-card{margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.project-card h3{margin:0}
.user-table{width:100%;border-collapse:collapse}
.user-table th,.user-table td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.user-table th{font-size:12px;color:var(--eyebrow);text-transform:uppercase;letter-spacing:.04em}
.user-actions{display:flex;gap:6px;flex-wrap:wrap}
.matrix{width:100%;border-collapse:collapse;font-size:14px}
.matrix th,.matrix td{border:1px solid var(--line);padding:8px;text-align:center}
.matrix th:first-child,.matrix td:first-child{text-align:left}
.table-scroll{overflow-x:auto;max-width:100%}
.secret-box{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;background:#f7f9fc;padding:12px;border-radius:var(--r-sm);border:1px dashed var(--field-border);word-break:break-all}
.roadmap-item{padding:14px 0;border-bottom:1px solid var(--line)}
.roadmap-item:last-child{border-bottom:0}

/* — Avis, fenêtres — */
#notice{margin:0 0 14px}
#notice:not(:empty){background:var(--notice-bg);padding:16px;border-radius:12px;overflow-wrap:anywhere;color:var(--liito-marine)}
#notice.err:not(:empty){background:#fdf1f0;color:#8a1f1b;border:1px solid #e9b8b5}
#notice button{margin-left:10px;min-height:36px;padding:4px 10px}
.alert{padding:14px 16px;border-radius:12px;margin-bottom:14px;background:var(--notice-bg);color:var(--liito-marine)}
.alert.warn{background:var(--tone-amber-bg);color:var(--tone-amber-fg);border:1px solid var(--tone-amber-bd)}
.alert.err{background:#fdf1f0;color:#8a1f1b;border:1px solid #e9b8b5}
dialog.discard-dialog{box-sizing:border-box;width:calc(100% - 32px);max-width:min(560px,calc(100vw - 32px - var(--safe-l) - var(--safe-r)));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--hair);border-radius:var(--r-lg);background:#fff;color:var(--liito-marine);padding:24px;box-shadow:var(--shadow-md),0 24px 70px rgba(12,42,81,.18)}
dialog.discard-dialog::backdrop{background:rgba(12,42,81,.34)}
dialog.discard-dialog h2{margin-top:0}
dialog.discard-dialog p{color:var(--liito-ink)}
.actions{display:flex;gap:10px;flex-wrap:wrap}
dialog.discard-dialog .actions{justify-content:flex-end;margin-top:18px}
.loading{display:flex;align-items:center;gap:10px;padding:24px;color:var(--muted)}
.spinner{width:20px;height:20px;border-radius:50%;border:3px solid #dce5ef;border-top-color:var(--liito-blue);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* — Connexion (comme Validation, trait d'accent aux couleurs du logo) — */
body.login-page{background:linear-gradient(180deg,#fff 0,var(--liito-cream) 360px)}
.login-screen{max-width:440px;width:100%;margin:clamp(16px,7vh,72px) auto 24px;padding:clamp(22px,5vw,36px);background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:inset 0 4px 0 var(--lt-yellow),var(--shadow-md)}
.login-brand{display:flex;align-items:center;gap:14px;min-width:0;margin:0 0 18px}
.login-brand .logo-wrap,.login-brand .logo{display:block;width:56px;height:56px;flex:none}
.login-brand .eyebrow{margin:0;color:var(--lt-olive-700);font:600 12px/1.2 var(--font-body);letter-spacing:.09em}
.login-screen h1{margin:0 0 10px;font-size:clamp(28px,7.2vw,34px);line-height:1.08}
.login-screen .muted{margin:0 0 22px;color:var(--muted-strong);font-size:16px;line-height:1.55}
.login-screen label{margin:14px 0 8px;font:600 15px/1.3 var(--font-body)}
.login-screen .field-wrap{position:relative}
.login-screen input{min-height:52px;border:1.5px solid var(--field-border);border-radius:12px}
.login-screen .field-wrap input{padding-right:96px}
.login-screen input:focus{border-color:var(--liito-marine)}
.login-screen .reveal{position:absolute;top:4px;right:4px;bottom:4px;min-width:84px;min-height:44px;margin:0;padding:0 12px;background:transparent;color:var(--liito-marine);border:0;box-shadow:none;font:600 14px/1 var(--font-body)}
.login-screen .reveal:hover{background:#eef3f9;color:var(--liito-marine)}
.login-screen .login-error{margin:14px 0 0;padding:12px 14px;border-radius:12px;font-size:15px;background:#fdf1f0;color:#8a1f1b;border:1px solid #e9b8b5}
.login-screen .login-submit{width:100%;min-height:52px;margin:18px 0 0;font:600 17px/1 var(--font-body);border-radius:12px}
.login-screen .login-hint{margin:14px 2px 0;color:var(--muted-strong);font-size:14px}

/* — Pied de page (comme Validation) — */
.site-footer{margin-top:32px;border-top:1px solid var(--line);padding:24px;line-height:1.6;text-align:center;color:var(--muted);font-size:13px}
.site-footer p{margin:0 0 8px}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-bottom:8px}
.site-footer nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--liito-marine);text-underline-offset:4px}
.site-footer small{font-size:12px;display:block}

/* — Adaptation — */
@media (max-width:1100px){.flow-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-layout{grid-template-columns:minmax(0,1fr)}.admin-hub{grid-template-columns:1fr}.compact-task summary{gap:6px 12px}}
@media (max-width:900px){.compact-task summary{grid-template-columns:minmax(0,1fr) auto 24px;grid-template-areas:"main open chev" "flags flags flags" "acts acts acts";padding:10px 12px}
  .compact-task .task-main{grid-area:main}.compact-task .compact-open{grid-area:open;min-height:44px}.compact-task .compact-chevron{grid-area:chev}
  .compact-task .flags{grid-area:flags}.compact-task .acts{grid-area:acts}}
.compact-task .flags{display:flex;flex-direction:column;gap:2px;min-width:150px}
.compact-task .acts{display:contents}
@media (max-width:900px){.compact-task .task-headline .sep{display:none}
.compact-task .flags{display:flex;flex-direction:row;gap:6px 14px;flex-wrap:wrap;min-width:0}.compact-task .acts{display:flex;justify-content:space-between;align-items:center;gap:10px}
  .compact-task .task-headline{display:block}.compact-task .task-headline .sep{display:none}.compact-task .compact-title{display:block;white-space:normal;overflow:visible;margin-top:2px}.task-date{display:block}}
@media (max-width:700px){
  header.app-header{padding:14px 16px;gap:12px;flex-wrap:wrap}
  .brand-name{font-size:19px}
  #session{margin-left:auto}
  main{margin-top:20px;padding:0 max(12px,var(--safe-l)) calc(20px + var(--safe-b)) max(12px,var(--safe-l))}
  .top{gap:10px}
  .admin-actions{width:100%}.admin-actions>*{flex:1 1 auto}
  .section-switch{margin:14px 0}
  .flow-chips{grid-template-columns:1fr 1fr;gap:10px}
  .flow-chip{grid-template-columns:auto 1fr;min-height:64px;padding:10px}
  .flow-chip .flow-count{grid-column:2;font-size:22px}
  .filters{display:grid;grid-template-columns:1fr;gap:8px;padding:8px}
  .filters>*{flex:none}
  .filters-fold>summary{display:flex}
  .filters-row{display:grid;grid-template-columns:1fr;gap:8px;margin-top:6px}
  .filters-row>*{flex:none}
  .filters-row .btn{width:100%}
  .card{padding:16px;border-radius:14px}
  .quick-add-row{grid-template-columns:minmax(0,1fr)}
  .calendar-toolbar{gap:6px}.calendar-toolbar h2{font-size:18px}
  .calendar-grid,.calendar-dow{gap:4px}.calendar-day{min-height:52px;padding:4px;font-size:15px}.calendar-day small span{display:none}
  .month-calendar{padding:12px}
  .day-panel{width:100%;border:0;border-radius:0}.day-panel-header{padding:16px}.day-panel-content{padding:16px}
  .attachment{grid-template-columns:48px minmax(0,1fr)}.attachment .attachment-actions{grid-column:1/-1}
  .user-table thead{display:none}.user-table,.user-table tbody,.user-table tr,.user-table td{display:block;width:100%}
  .user-table tr{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:10px;padding:6px;background:#fff}
  .user-table td{border:0;padding:4px 6px}.user-table td[data-label]::before{content:attr(data-label) " : ";color:var(--eyebrow);font-size:12px}
  .breadcrumbs{gap:7px;font-size:12px}
  .site-footer{padding:20px 12px}.site-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
  dialog.discard-dialog{padding:18px;border-radius:var(--r-md)}
  dialog.discard-dialog .actions .btn,dialog.discard-dialog .actions button{flex:1 1 140px}
  .login-screen{margin-top:12px;border-radius:18px}
}
@media (max-width:480px){.flow-chips{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr}}
@media (max-height:480px) and (orientation:landscape){.day-panel-header{position:static}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition:none!important;scroll-behavior:auto!important}}
@media print{header.app-header,.site-footer,#notice{display:none}}
.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.two-col>*{min-width:0}
.two-col>.card{margin:0}
.list-inline .compact-task{border:1px solid var(--hair-soft);margin-bottom:8px;background:#fff}
.list-inline .compact-task+.compact-task{border-top:1px solid var(--hair-soft)}
.open-wide{align-self:center}
@media (max-width:1100px){.two-col{grid-template-columns:minmax(0,1fr)}}
.project-card h3 a{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:1100px){.detail-layout{display:flex;flex-direction:column;gap:16px}.detail-col{display:contents}.detail-col .card{margin:0}.o1{order:1}.o2{order:2}.o3{order:3}.o4{order:4}.o5{order:5}.o6{order:6}.o7{order:7}.o8{order:8}}
dialog.discard-dialog p{white-space:pre-line}

/* ---------- Administration (cartes du hub, liste de personnes) — repris de Validation (.admin-hub, .admin-card, .profile-row) ---------- */
.admin-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
a.admin-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;width:100%;min-height:96px;padding:22px;text-align:left;background:#fff;color:var(--liito-marine);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-md);text-decoration:none}
a.admin-card:hover{background:var(--hover);color:var(--liito-marine)}
a.admin-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.admin-card .ui-icon{width:30px;height:30px;color:var(--liito-blue)}
.admin-card-text strong{display:block;font-family:var(--font-display);font-size:20px}
.admin-card-text small{display:block;margin-top:6px;font-size:14px;line-height:1.45;color:var(--muted)}
.admin-chevron{font-size:26px;color:var(--eyebrow)}
.profile-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.profile-row:last-child{border-bottom:0}
.profile-row p{margin:6px 0;overflow-wrap:anywhere}
.profile-row.is-off .profile-main strong{color:var(--muted)}
.profile-row .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.profile-main .badge{margin-left:8px}
.profile-fields{border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px 16px;margin:0 0 14px}
.profile-fields legend{padding:0 6px;font-weight:700;color:var(--liito-marine)}
.role-help{margin:6px 0 10px;padding:10px 12px;background:var(--expanded-bg);border-left:3px solid var(--liito-blue);border-radius:6px;font-size:14px;line-height:1.5}
.account-form .actions{display:flex;gap:10px;flex-wrap:wrap}
label.check{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:8px}
@media(max-width:900px){.admin-hub{grid-template-columns:1fr}}
@media(max-width:700px){.profile-row{flex-direction:column;align-items:stretch}.profile-row .actions{justify-content:flex-start}.profile-row .actions>button{flex:1 1 auto}}

/* ---------- Semaine de travail, catégories, ajout rapide (même famille visuelle : fonds clairs, marine, bleu; accent du logo pour « moi » et le repère de semaine) ---------- */
.week-card{padding:20px}
.week-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 12px}
.week-nav .btn{white-space:nowrap}
.week-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 6px;font-size:17px;color:var(--liito-marine);flex:1 1 220px;justify-content:center;text-align:center}
.week-pick{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--muted-strong)}
.week-pick input{min-height:44px}
.week-filters{margin-bottom:10px}
.week-note-view{margin:0 0 12px;padding:8px 12px;background:var(--expanded-bg);border-left:3px solid var(--liito-blue);border-radius:6px}
.quick-add-row{display:grid;grid-template-columns:minmax(0,1fr) 200px 220px auto;gap:10px;align-items:center}
.quick-add-hint{margin:6px 0 0}
.quick-add .field-error{margin:6px 0 0}
.week-section{margin:18px 0 0}
.week-section h3{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--font-display);font-size:19px;color:var(--liito-marine)}
.week-section h3 .count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--selected);color:var(--link);font-size:14px;font-weight:700}
.empty-line{margin:8px 0 0;padding:10px 12px;background:var(--expanded-bg);border-radius:var(--r-sm)}
.week-links{margin:18px 0 0;line-height:1.7}
.task-week{display:block;font-size:13px;margin-top:2px;color:var(--muted-strong)}
.task-week.wk-carry{color:var(--tone-amber-fg);font-weight:600}
.task-week.wk-late-done{color:var(--tone-green-fg)}
.week-field{display:grid;gap:8px;max-width:360px}
.week-field-label{margin:0;font-weight:600;color:var(--liito-marine)}
.week-field-btns{display:flex;gap:8px;flex-wrap:wrap}
.cat-add{margin-bottom:6px;grid-template-columns:minmax(0,1fr) auto}
.profile-row .actions>button[aria-label^="Monter"],.profile-row .actions>button[aria-label^="Descendre"]{min-width:44px}
@media(max-width:700px){.quick-add-row{grid-template-columns:minmax(0,1fr)}.week-title{flex-basis:100%;order:-1;margin:0;justify-content:flex-start;text-align:left}.week-nav .btn{flex:1 1 auto}.week-card{padding:14px}.cat-add{grid-template-columns:minmax(0,1fr)}.week-pick{flex:1 1 100%}}

/* Accueil simplifié : un périmètre, détails à la demande. */
.simple-home .week-card { margin-top: 20px; }
.simple-home .week-card > .card-title { display: none; }
.week-controls { display: flex; gap: 16px; align-items: end; margin: 16px 0; flex-wrap: wrap; }
.week-controls > .field { flex: 1; min-width: 200px; }
.week-secondary-filters { flex: 2; min-width: 220px; }
.week-secondary-filters > summary, .nav-more > summary { cursor: pointer; padding: 12px 16px; min-height: 44px; border: 1px solid var(--border, #b5c2d2); border-radius: 12px; background: white; }
.week-secondary-filters .week-filters { margin-top: 10px; }
.week-section > summary { cursor: pointer; min-height: 44px; }
.nav-more { position: relative; }
.nav-more-links { position: absolute; z-index: 20; right: 0; top: calc(100% + 8px); width: 220px; padding: 8px; background: white; border: 1px solid #b5c2d2; border-radius: 14px; box-shadow: 0 12px 32px rgba(12,42,81,.12); }
.nav-more-links a { display: block; padding: 12px; min-height: 44px; border-radius: 8px; }
.nav-more-links a:hover { background: #f4f6f8; }
.app-header { background: rgba(255,255,255,.96); }
@supports (backdrop-filter: blur(8px)) { @media (min-width: 900px) and (prefers-reduced-motion: no-preference) { .app-header { background: rgba(255,255,255,.88); backdrop-filter: blur(8px); } } }
@media(max-width:700px) { .week-controls { display: block; } .week-secondary-filters { margin-top: 12px; } .week-controls .week-filters { display: block; } .nav-more-links { right: 0; } }

.batch-add { margin: 8px 0 20px; } .batch-add > summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: #185aa4; } .batch-add .quick-add { margin-top: 12px; }
.simple-home .task-headline { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.simple-home .compact-title { order:-1; }
.simple-home .task-headline .sep, .simple-home .task-date.none { display:none; }
.week-section > summary::after { content:'⌄'; margin-left:auto; padding:8px; }
.week-section[open] > summary::after { content:'⌃'; }
.task-more { min-width:44px; min-height:44px; }
@media(max-width:700px) {
  .section-switch { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .section-switch a { min-width:0; min-height:44px; padding:10px 6px; white-space:normal; text-align:center; display:flex; align-items:center; justify-content:center; font-size:14px; }
}

/* ---------- Départements, périmètre des comptes, préparer la semaine, modèle/import/export ---------- */
.quick-add-row.with-dept{grid-template-columns:minmax(0,1fr) 170px 190px 190px auto}
@media(max-width:1100px){.quick-add-row.with-dept{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.quick-add-row.with-dept #qa-title{grid-column:1/-1}}
@media(max-width:700px){.quick-add-row.with-dept{grid-template-columns:minmax(0,1fr)}}
.dept-checks{display:grid;gap:2px;margin:6px 0 10px 28px}
label.check.radio{align-items:flex-start;margin:4px 0}
.external-link{font-weight:600;color:var(--link)}
.eyebrow{display:block;color:var(--eyebrow);letter-spacing:.06em;font-size:12px;font-weight:600}
.prep-dest{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin-bottom:10px;padding:12px 14px;background:var(--expanded-bg);border-left:3px solid var(--lt-olive-700);border-radius:8px}
.prep-dest p{margin:2px 0 0;font-size:19px;color:var(--liito-marine)}
.prep-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px}
.prep-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.prep-row{background:#fff;border:1px solid var(--hair-soft);border-radius:var(--r-sm);padding:6px 12px 8px}
.prep-row .check{min-height:44px;font-weight:600;color:var(--liito-marine)}
.prep-meta{display:block;margin:0 0 0 30px;line-height:1.5}
.prep-actions{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,var(--liito-cream) 40%);display:flex;justify-content:flex-end}
.prep-results{list-style:none;padding:0;margin:10px 0;display:grid;gap:4px;font-size:14px}
.prep-res.moved strong{color:var(--tone-green-fg)}.prep-res.conflict strong{color:var(--tone-red-fg)}.prep-res.ignored strong,.prep-res.already strong{color:var(--muted-strong)}
.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.imp-table{width:100%;border-collapse:collapse;font-size:14px;min-width:620px}
.imp-table th,.imp-table td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.imp-table th{font-size:12px;color:var(--eyebrow);text-transform:uppercase;letter-spacing:.04em}
.imp-error td{background:var(--tone-red-bg)}.imp-duplicate td{background:var(--tone-amber-bg)}
.imp-notes{margin:0;padding-left:16px}.imp-notes .err{color:var(--tone-red-fg)}.imp-notes .warn{color:var(--tone-amber-fg)}.imp-notes .dup{color:var(--tone-amber-fg)}
@media(max-width:700px){.prep-actions{justify-content:stretch}.prep-actions button{width:100%}.prep-dest p{font-size:17px}}
details.card>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:600;color:var(--liito-marine)}
section.card>label.check{display:flex;margin:4px 0}
@media(max-width:700px){.imp-table{min-width:0}.imp-table thead{display:none}.imp-table,.imp-table tbody,.imp-table tr,.imp-table td{display:block;width:100%}.imp-table tr{padding:8px 10px;border-bottom:1px solid var(--line)}.imp-table td{border:0;padding:3px 0}.imp-table td:first-child{color:var(--eyebrow);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.imp-table td:first-child::before{content:'Ligne '}}

/* 0.1.0 bêta — respiration commune, sans changer les parcours. */
.top{gap:20px 28px;padding-bottom:12px}
.admin-actions{gap:12px}
.section-switch{gap:12px;margin:20px 0 24px}
.card{padding:24px;margin-bottom:20px}
.stack,.detail-col{gap:20px}
.two-col,.detail-layout{gap:24px}
.card-title{gap:12px 20px;margin-bottom:18px}
.filters{padding:16px;gap:14px;margin-bottom:16px}
.filters-row{gap:14px}
.form-grid{gap:12px 20px}
.field{margin-bottom:10px;min-width:0}
.field>label:first-child{margin-top:10px}
.hint{margin-top:7px;line-height:1.5}
.edit-actions{gap:12px;margin-top:24px;padding-top:20px}
.compact-task summary{padding-top:14px;padding-bottom:14px;row-gap:10px}
.task-context{gap:6px 10px;margin-top:5px;line-height:1.5}
.compact-expanded{padding:20px;gap:20px 28px}
.week-card{padding:24px}
.week-nav{gap:12px;margin-bottom:20px}
.week-controls{gap:20px;margin:20px 0 24px}
.week-section{margin-top:28px}
.week-section>summary{padding:8px 0;margin-bottom:8px}
.quick-add-row,.quick-add-row.with-dept{gap:14px}
.batch-add{margin:12px 0 24px}
.calendar-toolbar{gap:12px;margin-bottom:24px}
.facts{gap:22px 28px}
.status-quick{gap:12px 16px}
.comment{padding:18px 0}
.comment-body{margin:8px 0}
.attachment{padding:14px 0;gap:14px}
.profile-row{padding:24px 0;gap:20px 28px;flex-wrap:wrap}
.profile-main{flex:1 1 240px;min-width:0}
.profile-row .actions{gap:10px 12px;flex:1 1 420px}
.profile-fields{padding:16px 20px 20px;margin-bottom:20px}
.admin-hub,.project-grid{gap:20px}
.admin-card-text{min-width:0}
dialog.discard-dialog{padding:28px}
dialog.discard-dialog .field{margin-bottom:16px}
dialog.discard-dialog .actions{gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.two-col .card{container-type:inline-size}
@container(max-width:850px){
 .compact-task summary{grid-template-columns:minmax(0,1fr) auto 24px;grid-template-areas:"main open chev" "flags flags flags" "acts acts acts";gap:10px 14px}
 .compact-task .task-main{grid-area:main}.compact-task .compact-open{grid-area:open}.compact-task .compact-chevron{grid-area:chev}
 .compact-task .flags{grid-area:flags;flex-direction:row;flex-wrap:wrap;min-width:0;gap:8px 14px}
 .compact-task .acts{grid-area:acts;display:flex;justify-content:space-between;align-items:center;gap:12px}
 .compact-task .task-headline{display:block}.compact-task .task-headline .sep{display:none}
 .compact-task .compact-title{display:block;white-space:normal;overflow:visible}.compact-task .task-date{display:block}
}
@media(max-width:700px){
 main{padding-left:max(16px,var(--safe-l));padding-right:max(16px,var(--safe-r))}
 .top{gap:16px}.section-switch{gap:8px;margin:20px 0}
 .card,.week-card{padding:18px}
 .filters{padding:14px;gap:12px}.filters-row{gap:12px;margin-top:12px}
 .week-controls>.field{margin-bottom:18px}.week-secondary-filters{margin-top:16px}
 .week-nav{gap:10px}.week-pick{margin-top:6px}.week-section{margin-top:24px}
 .flow-chip{padding:12px;gap:8px 10px}
 .compact-task summary{padding:14px 12px;gap:10px 12px}
 .compact-expanded{padding:16px}
 .calendar-toolbar{gap:10px 12px}.month-calendar{padding:14px}
 .profile-row{padding:20px 0;gap:16px}.profile-main,.profile-row .actions{flex:initial;width:100%}
 .profile-fields{padding:14px 16px 18px}
 .form-grid,.map-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 dialog.discard-dialog{padding:22px 18px}
 .kv{grid-template-columns:minmax(0,1fr);gap:6px}.kv dd{margin-bottom:10px}
}
@media(min-width:701px) and (max-width:1100px){.quick-add-row.with-dept{gap:14px 16px}}
