:root{--red:#c8102e;--red-dark:#991024;--red-soft:#fff0f2;--ink:#1e2025;--muted:#6f737c;--line:#e7e8eb;--surface:#fff;--bg:#f4f5f7;--green:#198754;--amber:#d98500;--blue:#2463a8;--shadow:0 12px 38px rgba(30,32,37,.07);--radius:22px;--radius-sm:14px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.75rem,3vw,2.45rem);line-height:1.1;margin-bottom:.5rem;letter-spacing:-.035em}h2{font-size:1.22rem;margin-bottom:.35rem;letter-spacing:-.02em}h3{font-size:1rem}small{color:var(--muted)}code{background:#f0f1f3;border-radius:6px;padding:.15rem .35rem}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#17191e;color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--red);color:#fff;border-radius:13px;font-size:1.25rem;font-weight:900;box-shadow:0 7px 20px rgba(200,16,46,.32)}.brand-mark.large{width:58px;height:58px;border-radius:18px;font-size:1.8rem}.brand strong{display:block;font-size:1.1rem;letter-spacing:.08em}.brand small{display:block;color:#aeb1b9;font-size:.76rem}.nav{display:flex;flex-direction:column;gap:5px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;color:#c9cbd1;font-weight:620;transition:.18s}.nav a span{width:22px;text-align:center;font-size:1.05rem}.nav a:hover{background:#24272e;color:#fff}.nav a.active{background:var(--red);color:#fff;box-shadow:0 8px 20px rgba(200,16,46,.22)}.nav-label{text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;color:#777c87;padding:24px 13px 7px}.sidebar-user{margin-top:auto;border-top:1px solid #2c2f36;padding:18px 7px 0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.sidebar-user strong,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{font-size:.72rem}.sidebar-user>a{font-size:1.6rem;color:#8d919a}.avatar{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-weight:800}.avatar.large{width:52px;height:52px;border-radius:17px}
.main-column{min-width:0}.topbar{height:78px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,42px);position:sticky;top:0;z-index:20}.topbar>div:nth-child(2){display:flex;flex-direction:column}.topbar strong{font-size:1rem}.topbar .eyebrow{font-size:.6rem;margin-bottom:1px}.top-actions{display:flex;align-items:center;gap:8px}.top-actions form{margin:0}.icon-button,.menu-button{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:13px;display:grid;place-items:center;color:var(--ink)}.icon-button:hover,.menu-button:hover{border-color:#d1d3d8;background:#f8f8f9}.menu-button{display:none}.content{max-width:1540px;margin:0 auto;padding:32px clamp(18px,3vw,42px) 60px}.eyebrow{display:block;color:var(--red);font-weight:800;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:26px}.page-heading p{margin-bottom:0;color:var(--muted);max-width:720px}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.breadcrumb{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.83rem;margin-bottom:18px}.breadcrumb a{color:var(--red);font-weight:700}
.button{border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 19px;font-weight:750;white-space:nowrap;transition:.18s}.button.primary{background:var(--red);color:#fff;box-shadow:0 8px 18px rgba(200,16,46,.2)}.button.primary:hover{background:var(--red-dark);transform:translateY(-1px)}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.button.secondary:hover,.button.ghost:hover{background:#f7f7f8}.button.ghost{background:transparent;border:1px solid var(--line)}.button.danger{background:#a3172e;color:#fff}.button.small{padding:8px 14px;font-size:.84rem}.button.wide{width:100%;padding:13px}.text-button{border:0;background:transparent;color:var(--red);font-weight:750;padding:3px}.text-button.success{color:var(--green)}.text-button.danger{color:#a3172e}.inline-actions,.inline-form{display:flex;align-items:center;gap:9px}.inline-actions form{margin:0}.inline-form select{padding:6px 8px;min-width:150px}.alert{padding:13px 16px;border-radius:14px;margin-bottom:18px;font-weight:650;border:1px solid}.alert.success{background:#ecf8f1;color:#11643c;border-color:#bde3ce}.alert.error{background:#fff0f2;color:#8b172a;border-color:#f1bdc7}.warning-text{color:var(--amber);font-weight:700}.grow{min-width:0;flex:1}.muted{opacity:.58}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:22px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-header h2{margin:0}.panel-header>a,.panel-header>span{color:var(--red);font-weight:750;font-size:.85rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:22px}.stats-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:146px}.stat-card>span{color:var(--muted);font-weight:650}.stat-card strong{font-size:2rem;line-height:1.15;margin:14px 0 auto}.stat-card a{color:var(--red);font-weight:700;font-size:.8rem;margin-top:12px}.stat-card.red{background:var(--red);border-color:var(--red);color:#fff}.stat-card.red>span,.stat-card.red a{color:#fff}.dashboard-grid,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.dashboard-grid.single{grid-template-columns:1fr}.dashboard-grid>.panel,.detail-grid>.panel{margin-bottom:0}.dashboard-grid{margin-bottom:22px}.timeline{display:flex;flex-direction:column}.timeline article{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.timeline article:first-child{border-top:0}.timeline time{background:var(--red-soft);border-radius:var(--radius-sm);text-align:center;padding:7px 4px;color:var(--red)}.timeline time strong,.timeline time span,.timeline article>div>*{display:block}.timeline time strong{font-size:1.15rem}.timeline time span{font-size:.68rem;text-transform:uppercase}.timeline article>div span{color:var(--muted);font-size:.83rem}.project-list{display:flex;flex-direction:column}.project-list>a{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.project-list>a:first-child{border-top:0}.project-list a>div{flex:1}.project-list strong,.project-list small{display:block}.project-dot{width:11px;height:11px;border-radius:50%;background:#aaa}.project-dot.in_progress{background:var(--green)}.project-dot.planning{background:var(--blue)}.project-dot.paused{background:var(--amber)}
.owner-banner{background:linear-gradient(135deg,#17191e,#292d35);color:#fff;border-radius:var(--radius);padding:28px;display:flex;align-items:flex-start;gap:20px;margin-bottom:22px;box-shadow:0 18px 50px rgba(23,25,30,.2)}.owner-banner h1{margin-bottom:8px}.owner-banner p{color:#c9cbd1;max-width:820px;margin-bottom:0}.owner-lock{width:58px;height:58px;flex:0 0 58px;border-radius:18px;background:var(--red);display:grid;place-items:center;font-size:1.75rem;box-shadow:0 10px 26px rgba(200,16,46,.3)}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr;gap:16px;transition:.18s}.admin-card[href]:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--red) 35%,#fff);box-shadow:0 18px 46px rgba(30,32,37,.11)}.admin-card>strong{grid-column:2;color:var(--red);font-size:.83rem}.admin-card h2{margin-bottom:6px}.admin-card p{color:var(--muted);margin:0}.admin-icon{width:48px;height:48px;border-radius:15px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-size:1.25rem;font-weight:850}.summary-card{background:#fafafa}.admin-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;list-style:none;margin:14px 0 0;padding:0}.admin-counts li{border:1px solid var(--line);border-radius:12px;padding:10px}.admin-counts strong,.admin-counts span{display:block}.admin-counts strong{font-size:1.2rem;color:var(--red)}.admin-counts span{font-size:.68rem;color:var(--muted)}
.gallery-item{position:relative;min-width:0}.gallery-item>a{display:block;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fafafa}.gallery-item>a>span{display:block;font-size:.72rem;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-delete{position:absolute;top:7px;right:7px;margin:0}.gallery-delete button{width:30px;height:30px;border:0;border-radius:999px;background:rgba(23,25,30,.88);color:#fff;font-size:1.15rem;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.24)}.gallery-delete button:hover{background:#a3172e}
.badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:800;background:#f0f1f3;color:#5b6069;white-space:nowrap}.badge.in_progress,.badge.approved,.badge.validated,.badge.active,.badge.work{background:#e8f7ee;color:#177047}.badge.planning,.badge.submitted,.badge.training{background:#eaf2fb;color:#245f9d}.badge.paused,.badge.draft,.badge.leave{background:#fff5df;color:#9c6500}.badge.completed{background:#eff0f2;color:#5d626b}.badge.rejected,.badge.inactive,.badge.absence{background:#fff0f2;color:#9c1d33}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--muted);padding:34px;min-height:130px}.empty strong{color:var(--ink);margin-bottom:5px}.empty.compact{min-height:60px;padding:16px}
.table-wrap{overflow-x:auto;margin:0 -4px}.table-wrap table{width:100%;border-collapse:collapse;min-width:720px}th{text-align:left;color:var(--muted);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}td small{display:block;margin-top:3px}.truncate{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stack{display:flex;flex-direction:column;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.form-grid .span-2{grid-column:span 2}label{display:flex;flex-direction:column;gap:7px;font-weight:680;font-size:.84rem}label small{font-weight:400}input,select,textarea{width:100%;border:1px solid #dcdde1;background:#fff;border-radius:12px;padding:11px 12px;color:var(--ink);outline:none;transition:.15s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.09)}fieldset{border:0;padding:0;margin:0}legend{font-weight:750;margin-bottom:10px}.field-error{color:#a3172e}.password-wrap{position:relative}.password-wrap button{position:absolute;right:8px;top:7px;border:0;background:#f1f1f3;border-radius:8px;padding:5px 8px;font-size:.75rem}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:280px;overflow:auto}.check-list label{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:row;align-items:center;gap:10px}.check-list input{width:auto}.check-list span>*{display:block}
.modal{border:0;border-radius:24px;padding:0;width:min(680px,calc(100% - 28px));max-height:88vh;box-shadow:0 26px 80px rgba(0,0,0,.28);overflow:auto}.modal.wide{width:min(900px,calc(100% - 28px))}.modal.small{width:min(470px,calc(100% - 28px))}.modal::backdrop{background:rgba(18,20,25,.63);backdrop-filter:blur(3px)}.modal>form{padding:25px}.modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px}.modal header h2{font-size:1.4rem;margin:0}.modal header button{border:0;background:#f0f1f3;border-radius:50%;width:34px;height:34px;font-size:1.4rem}.modal footer,.report-form>footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:17px}
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:700}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.person-card{border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;align-items:center;gap:13px}.person-card .grow>*{display:block}.person-card .text-button{margin-left:auto}.week-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 16px;margin-bottom:18px}.week-nav a{font-weight:700;font-size:.82rem;color:var(--red)}
.project-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:21px;box-shadow:var(--shadow);transition:.18s}.project-card:hover{transform:translateY(-3px);border-color:#d7afb6;box-shadow:0 18px 46px rgba(30,32,37,.1)}.project-card header,.project-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-card h2{font-size:1.15rem;margin:20px 0 9px}.project-card p{color:var(--muted);min-height:46px}.project-card footer{border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:.75rem}.project-ref{color:var(--red);font-weight:850;letter-spacing:.05em}.project-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.project-summary article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.project-summary article>*{display:block}.project-summary article>span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.project-summary article strong{font-size:.92rem}.project-summary article small{margin-top:4px}.member-list{display:flex;flex-direction:column;gap:10px}.member-list>div{display:flex;align-items:center;gap:11px}.member-list strong,.member-list small{display:block}.note-block{background:#f6f6f8;border-radius:14px;padding:15px;margin-top:18px}.note-block p{margin:7px 0 0;color:var(--muted)}.upload-zone{border:2px dashed #d9dadd;background:#fafafa;border-radius:17px;padding:18px;align-items:center;text-align:center}.upload-zone label{align-items:center}.upload-zone input[type=file]{border:0;padding:7px;background:transparent}.upload-zone span{font-weight:750}.gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.gallery.large{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery>a{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fafafa}.gallery img,.file-tile{width:100%;aspect-ratio:1.25;object-fit:cover}.gallery span{display:block;font-size:.72rem;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-tile{display:grid;place-items:center;background:#f7e9ec;color:var(--red);font-weight:900;font-size:1.25rem}.report-sheet>header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--red);padding-bottom:18px}.report-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.report-meta>div{background:#f7f7f8;border-radius:13px;padding:13px}.report-meta span,.report-meta strong{display:block}.report-meta span{font-size:.7rem;text-transform:uppercase;color:var(--muted)}.report-section{padding:17px 0;border-top:1px solid var(--line)}.report-section p{margin:0;color:#444850}.validation-stamp{border:2px solid var(--green);color:var(--green);padding:12px 16px;border-radius:12px;font-weight:750;display:inline-block;transform:rotate(-1deg)}
.receipt-link{color:var(--red);font-weight:750}.messages-list{padding:0;overflow:hidden}.messages-list>a{display:flex;align-items:center;gap:13px;padding:16px 20px;border-bottom:1px solid var(--line);transition:.15s}.messages-list>a:last-child{border-bottom:0}.messages-list>a:hover{background:#fafafa}.messages-list .grow strong,.messages-list .grow span{display:block}.messages-list .grow span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:680px}.message-meta{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.message-meta>span{background:var(--red);color:#fff;min-width:21px;height:21px;border-radius:999px;display:grid;place-items:center;font-size:.68rem;font-weight:800}.chat{padding:0;overflow:hidden;max-width:980px;margin:0 auto}.chat-header{padding:19px 22px;border-bottom:1px solid var(--line)}.chat-header h1{font-size:1.3rem;margin-bottom:2px}.chat-header p{color:var(--muted);font-size:.78rem;margin:0}.chat-live-status{color:var(--red);font-size:.7rem;font-weight:750}.chat-messages{height:min(58vh,620px);overflow-y:auto;padding:22px;background:#f7f7f8;display:flex;flex-direction:column;gap:12px}.message{max-width:72%;align-self:flex-start}.message>span{font-size:.67rem;color:var(--muted);margin-left:9px}.message>div{background:#fff;border:1px solid var(--line);border-radius:17px 17px 17px 5px;padding:10px 13px;box-shadow:0 4px 12px rgba(0,0,0,.04)}.message time{font-size:.62rem;color:#94979d;margin-left:9px}.message.mine{align-self:flex-end;text-align:right}.message.mine>div{background:var(--red);color:#fff;border-color:var(--red);border-radius:17px 17px 5px 17px;text-align:left}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:10px;padding:16px;border-top:1px solid var(--line)}.chat-compose textarea{min-height:48px}.info-panel{margin-top:22px}.info-panel li{margin:8px 0}
.settings-nav{position:sticky;top:88px;z-index:15;display:flex;gap:8px;flex-wrap:wrap;background:rgba(244,245,247,.94);backdrop-filter:blur(10px);padding:9px 0 14px;margin-bottom:8px}.settings-nav a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 13px;color:var(--muted);font-size:.8rem;font-weight:750}.settings-nav a:hover{color:var(--red);border-color:var(--red)}.settings-section{scroll-margin-top:145px}.settings-section>.panel-header{padding-bottom:15px;border-bottom:1px solid var(--line)}.appearance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:26px;align-items:stretch}.appearance-grid input[type=color]{height:48px;padding:5px;cursor:pointer}.appearance-preview{background:linear-gradient(145deg,var(--red-soft),#fff);border:1px solid color-mix(in srgb,var(--red) 25%,#fff);border-radius:var(--radius);padding:24px;display:flex;align-items:flex-start;gap:16px}.preview-mark{width:52px;height:52px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--red);color:#fff;font-size:1.45rem;font-weight:900;box-shadow:0 10px 24px color-mix(in srgb,var(--red) 28%,transparent)}.appearance-preview small,.appearance-preview strong{display:block}.appearance-preview strong{font-size:1.15rem;margin:3px 0 8px}.appearance-preview p{color:var(--muted);margin-bottom:18px}.appearance-preview button{border:0;border-radius:999px;padding:9px 15px;background:var(--red);color:#fff;font-weight:750}.input-suffix{display:flex;align-items:stretch}.input-suffix input{border-radius:12px 0 0 12px}.input-suffix span{display:grid;place-items:center;padding:0 12px;border:1px solid #dcdde1;border-left:0;border-radius:0 12px 12px 0;background:#f5f5f6;color:var(--muted);font-weight:700}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.toggle-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:15px;display:flex;flex-direction:row;align-items:flex-start;gap:12px;background:#fff;transition:.15s}.toggle-card:hover{border-color:color-mix(in srgb,var(--red) 45%,#fff);background:var(--red-soft)}.toggle-card input{width:21px;height:21px;flex:0 0 21px;margin:1px 0 0;accent-color:var(--red)}.toggle-card span>*{display:block}.toggle-card strong{margin-bottom:3px}.compact-toggles{margin-bottom:20px}.settings-subsection{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.settings-subsection h3{margin-bottom:4px}.settings-help{color:var(--muted);margin-bottom:16px}.settings-actions{position:sticky;bottom:12px;z-index:14;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#17191e;color:#fff;border-radius:var(--radius);padding:15px 18px;margin:0 0 22px;box-shadow:0 18px 48px rgba(23,25,30,.25)}.settings-actions span{color:#c9cbd1;font-size:.8rem}
.quick-action-panel{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(420px,1.2fr);gap:24px;align-items:center;background:linear-gradient(135deg,#17191e,#2a2e36);color:#fff;border-radius:var(--radius);padding:24px 26px;margin-bottom:22px;box-shadow:0 18px 50px rgba(23,25,30,.18)}.quick-action-panel h2{font-size:1.35rem}.quick-action-panel p{color:#c9cbd1;margin:0}.quick-action-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px}.quick-action-form label{color:#fff}.quick-action-form select{background:#fff}.quick-action-form [hidden]{display:none}.quick-action-form .button{min-height:46px}
.file-selection{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;width:100%;font-weight:500}.selected-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#eef0f3;color:var(--ink);border-radius:999px;padding:5px 7px 5px 10px;font-size:.72rem}.selected-file>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-file button{width:22px;height:22px;flex:0 0 22px;border:0;border-radius:50%;background:#d6d9de;color:#4d5159;line-height:1}.receipt-links{display:flex;flex-wrap:wrap;gap:7px}
.receipt-analyser{display:grid;gap:12px}.receipt-analyser .upload-zone{width:100%}.ocr-status{border-radius:12px;background:#f3f4f6;color:var(--muted);padding:10px 12px;font-size:.77rem}.ocr-status[data-state=working]{background:#eaf2fb;color:#245f9d}.ocr-status[data-state=success]{background:#e8f7ee;color:#177047}.ocr-status[data-state=error]{background:#fff5df;color:#8a5b00}.manual-expense-fields{border:1px solid var(--line);border-radius:15px;padding:0 15px}.manual-expense-fields summary{cursor:pointer;padding:14px 0;color:var(--red);font-weight:800}.manual-expense-fields[open] summary{border-bottom:1px solid var(--line);margin-bottom:15px}.manual-expense-fields>.form-grid{padding-bottom:15px}
.message-icon{position:relative}.message-unread{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:var(--red);color:#fff;font-size:.59rem;font-weight:850;display:grid;place-items:center}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-compose{grid-template-columns:auto minmax(0,1fr) auto;align-items:end}.chat-tools{display:flex;gap:7px}.attachment-button{position:relative;display:grid}.attachment-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.chat-input{min-width:0}.chat-input textarea{display:block}.chat-input>.file-selection{justify-content:flex-start;margin-top:7px}.chat-input>[data-voice-status]{display:block;margin-top:4px}.icon-button.recording{background:var(--red);border-color:var(--red);color:#fff;animation:voice-pulse 1s infinite}.message>div>p{margin:0}.message-attachments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}.message-attachments:first-child{margin-top:0}.message-attachments img{width:150px;max-width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:10px}.message-file{display:block;background:rgba(0,0,0,.06);border-radius:9px;padding:8px;font-size:.72rem;overflow-wrap:anywhere}.message.mine .message-file{background:rgba(255,255,255,.16)}.message-toast{position:fixed;right:18px;bottom:18px;z-index:110;width:min(360px,calc(100% - 36px));display:flex;flex-direction:column;background:#17191e;color:#fff;border-left:5px solid var(--red);border-radius:15px;padding:14px 16px;box-shadow:0 18px 50px rgba(0,0,0,.3);animation:toast-in .2s ease-out}.message-toast span{color:#d5d7dc;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-lightbox{position:fixed;inset:0;z-index:120;display:grid;grid-template-columns:minmax(48px,90px) minmax(0,1fr) minmax(48px,90px);grid-template-rows:auto minmax(0,1fr);background:rgba(8,9,12,.96);color:#fff;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.photo-lightbox[hidden]{display:none}.photo-lightbox>header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 4px 12px}.photo-lightbox>header button,.photo-lightbox>header a,.lightbox-arrow{border:1px solid #3b3e46;background:#24272e;color:#fff;border-radius:13px;min-height:44px;padding:0 14px;font-weight:750}.photo-lightbox>header a{display:inline-flex;align-items:center;justify-content:center}.photo-lightbox figure{grid-column:2;grid-row:2;min-width:0;min-height:0;margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}.photo-lightbox figure img{max-width:100%;max-height:calc(100dvh - 100px);object-fit:contain;border-radius:10px}.photo-lightbox figcaption{color:#c9cbd1;font-size:.8rem}.lightbox-arrow{grid-row:2;align-self:center;width:58px;height:58px;font-size:2.4rem;padding:0}.lightbox-arrow.previous{grid-column:1}.lightbox-arrow.next{grid-column:3}.lightbox-open{overflow:hidden}
@keyframes voice-pulse{50%{box-shadow:0 0 0 6px rgba(200,16,46,.18)}}@keyframes toast-in{from{transform:translateY(14px);opacity:0}}
.guest-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 15%,rgba(200,16,46,.14),transparent 30%),linear-gradient(135deg,#16181d 0%,#272a31 100%)}.guest-shell>.alert{position:fixed;top:18px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));z-index:3}.login-card{width:min(460px,100%);background:#fff;border-radius:30px;padding:34px;box-shadow:0 35px 100px rgba(0,0,0,.34)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:1.25rem;letter-spacing:.1em}.login-heading h1{font-size:2.3rem}.login-heading p{color:var(--muted)}.login-help{text-align:center;color:var(--muted);font-size:.72rem;margin:20px 0 0}.error-page{text-align:center;padding:70px 20px}.error-page>span{font-size:5rem;font-weight:900;color:var(--red-soft);-webkit-text-stroke:2px var(--red)}.error-page p{color:var(--muted);margin-bottom:24px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.project-cards{grid-template-columns:repeat(2,1fr)}.project-summary{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(4,1fr)}.form-grid.three{grid-template-columns:repeat(2,1fr)}.form-grid.three .span-2{grid-column:span 1}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);width:270px;transition:.22s;box-shadow:16px 0 50px rgba(0,0,0,.25)}body.menu-open .sidebar{transform:translateX(0)}body.menu-open:after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:25}.menu-button{display:grid}.topbar{height:68px}.content{padding-top:22px}.dashboard-grid,.detail-grid,.admin-grid{grid-template-columns:1fr}.dashboard-grid>.panel,.detail-grid>.panel{margin-bottom:0}.people-grid{grid-template-columns:1fr}.gallery,.gallery.large{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){body{font-size:14px}.topbar .eyebrow{display:none}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.heading-actions{width:100%}.heading-actions .button{flex:1}.stats-grid,.stats-grid.compact{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:16px;min-height:126px}.stat-card strong{font-size:1.65rem}.panel{padding:17px;border-radius:18px}.project-cards{grid-template-columns:1fr}.project-summary{grid-template-columns:1fr 1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.form-grid .span-2,.form-grid.three .span-2{grid-column:auto}.gallery,.gallery.large{grid-template-columns:repeat(2,1fr)}.week-nav a{font-size:0}.week-nav a:before{font-size:1rem}.week-nav a:first-child:before{content:"←"}.week-nav a:nth-child(2):before{content:"Aujourd’hui";font-size:.75rem}.week-nav a:last-child:before{content:"→"}.check-list{grid-template-columns:1fr}.message{max-width:88%}.chat-messages{height:56vh;padding:14px}.chat-compose{grid-template-columns:1fr}.modal>form{padding:19px}.login-card{padding:25px;border-radius:24px}.owner-banner{padding:20px;flex-direction:column}.owner-lock{width:48px;height:48px;flex-basis:48px}.admin-card{grid-template-columns:1fr}.admin-card>strong{grid-column:1}.admin-counts{grid-template-columns:1fr 1fr 1fr}}

.brand.has-logo{min-height:74px;padding-top:0}.brand-logo{display:block;width:min(190px,100%);height:62px;object-fit:contain;object-position:left center}.login-brand.has-logo{justify-content:center;margin-bottom:26px}.login-logo{display:block;max-width:min(290px,100%);max-height:105px;object-fit:contain}.logo-setting{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:22px;padding:18px;border:1px dashed #cfd1d7;border-radius:18px;background:#fafafa}.logo-preview{height:100px;border-radius:15px;background:#1b1d22;display:grid;place-items:center;padding:12px;overflow:hidden}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-preview span{width:54px;height:54px;border-radius:16px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:1.8rem;font-weight:900}.logo-setting-copy{display:grid;gap:10px}.inline-check{display:flex!important;flex-direction:row!important;align-items:center}.inline-check input{width:auto}
.welcome-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:22px;padding:28px 30px;border-radius:var(--radius);background:radial-gradient(circle at 83% 18%,rgba(255,255,255,.18),transparent 22%),linear-gradient(125deg,var(--red-dark),var(--red) 62%,#e32d49);color:#fff;box-shadow:0 20px 55px rgba(153,16,36,.24)}.welcome-hero:after{content:"";position:absolute;right:-60px;bottom:-90px;width:260px;height:260px;border:48px solid rgba(255,255,255,.07);border-radius:50%}.welcome-hero>div,.welcome-hero .button{position:relative;z-index:1}.welcome-hero .eyebrow,.welcome-hero p{color:rgba(255,255,255,.82)}.welcome-hero h1{margin:3px 0 5px;font-size:clamp(1.8rem,3.4vw,3rem);letter-spacing:-.035em}.welcome-hero p{margin:0}.animated-greeting{animation:greeting-in .65s cubic-bezier(.2,.8,.2,1) both}.animated-greeting>span{display:inline-block;transform-origin:70% 70%;animation:wave-hand 1.8s ease-in-out .35s}.dashboard-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.dashboard-home>.wide{grid-column:1/-1}.dashboard-block{position:relative;margin-bottom:0!important;min-width:0}
.employee-tabs{display:flex;gap:9px;overflow-x:auto;padding:2px 2px 16px;scrollbar-width:thin}.employee-tabs a{flex:0 0 auto;padding:11px 16px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-weight:850;box-shadow:0 4px 12px rgba(0,0,0,.04)}.employee-tabs a.active{background:var(--red);border-color:var(--red);color:#fff}.voice-message{display:grid;gap:9px;min-width:min(330px,65vw);padding:10px;border-radius:13px;background:#262930;color:#fff}.voice-player{display:grid;gap:6px}.voice-message audio{width:100%;height:40px}.voice-load-button{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:#fff;color:#202329;font-weight:850}.voice-load-button:disabled{opacity:.7}.voice-player>[data-audio-load-status]{color:#fff;font-size:.7rem}.voice-transcription{padding-top:8px;border-top:1px solid rgba(255,255,255,.18);color:#fff}.voice-transcription strong{display:block;margin-bottom:3px;color:#fff;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase}.voice-transcription p{margin:0;color:#fff;font-size:.78rem;line-height:1.45}.voice-transcription.unavailable{opacity:.82}.chat-history-link{align-self:center;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--red-dark);font-size:.75rem;font-weight:800}.audio-record-button{color:var(--red);font-size:1.1rem}.audio-record-button.recording{color:#fff}.upload-progress{position:absolute;inset:0;z-index:40;display:grid;place-content:center;justify-items:center;gap:7px;border-radius:inherit;background:rgba(255,255,255,.94);text-align:center}.upload-progress span{width:36px;height:36px;border:4px solid var(--red-soft);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}.upload-progress small{color:var(--muted)}form[enctype="multipart/form-data"]{position:relative}
.print-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:20px}.photo-export-heading{margin-bottom:22px}.photo-pdf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.photo-pdf-card{break-inside:avoid;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.photo-pdf-card img{display:block;width:100%;height:360px;object-fit:contain;background:#f4f4f5}.photo-pdf-card>div{display:grid;gap:4px;padding:13px}.photo-pdf-card span{color:var(--muted);font-size:.76rem}
@keyframes greeting-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes wave-hand{0%,55%,100%{transform:rotate(0)}10%{transform:rotate(18deg)}22%{transform:rotate(-10deg)}34%{transform:rotate(16deg)}46%{transform:rotate(-6deg)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:820px){.dashboard-home{grid-template-columns:1fr}.dashboard-home>.wide{grid-column:auto}.brand-logo{height:58px}.welcome-hero{padding:24px}.photo-pdf-grid{grid-template-columns:1fr}}
@media(max-width:620px){.logo-setting{grid-template-columns:1fr}.logo-preview{height:88px}.welcome-hero{align-items:flex-start;flex-direction:column;padding:23px 20px}.employee-tabs{margin-left:-4px;margin-right:-4px}.voice-message{min-width:min(270px,72vw)}.photo-pdf-card img{height:280px}}
@media print{.sidebar,.topbar,.print-toolbar,.message-toast{display:none!important}.app-shell{display:block}.main-column{display:block}.content{padding:0;max-width:none}.photo-export-heading{margin:0 0 14mm}.photo-pdf-grid{grid-template-columns:1fr 1fr;gap:8mm}.photo-pdf-card{box-shadow:none}.photo-pdf-card img{height:92mm}.photo-export-page{background:#fff}@page{size:A4;margin:12mm}}
@media(max-width:900px){.appearance-grid{grid-template-columns:1fr}.settings-nav{top:72px}.settings-section{scroll-margin-top:135px}}
@media(max-width:620px){.toggle-grid{grid-template-columns:1fr}.settings-actions{align-items:stretch;flex-direction:column;bottom:7px}.settings-actions .button{width:100%}.settings-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px}.settings-nav a{flex:0 0 auto}.appearance-preview{padding:18px}}
@media print{.sidebar,.topbar,.breadcrumb,.heading-actions,.alert,.content>.panel:not(.report-sheet){display:none!important}.app-shell{display:block}.content{padding:0}.report-sheet{box-shadow:none;border:0;margin:0}.report-sheet .badge{border:1px solid #aaa}@page{margin:16mm}}
.notification-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.notification-rule{border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px;background:#fafafa;display:grid;gap:12px}.notification-rule>label:not(.inline-check){display:grid;gap:6px}.notification-rule small{color:var(--muted);line-height:1.45}.weekday-selector{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.weekday-selector label input{position:absolute;opacity:0;pointer-events:none}.weekday-selector label span{display:grid;place-items:center;min-width:48px;padding:10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:750;cursor:pointer}.weekday-selector label input:checked+span{background:var(--red);border-color:var(--red);color:#fff}.optional-integration{border-top:1px solid var(--line);padding-top:18px}.optional-integration summary{cursor:pointer;font-weight:800;color:var(--red-dark)}.push-status-button{font-size:1.05rem}.push-status-button.is-active{background:var(--red-soft);color:var(--red-dark)}
.notification-test-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px}.notification-test-row small{color:var(--muted)}
@media(max-width:1024px){.notification-rules{grid-template-columns:1fr}}
.record-list{display:grid;gap:10px}.record-row{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;transition:border-color .16s,box-shadow .16s}.record-row[open]{border-color:color-mix(in srgb,var(--red) 34%,#fff);box-shadow:0 10px 28px rgba(30,32,37,.07)}.record-row>summary{display:grid;grid-template-columns:90px minmax(0,1fr) auto auto 28px;align-items:center;gap:14px;padding:15px 16px;cursor:pointer;list-style:none}.record-row>summary::-webkit-details-marker{display:none}.record-date{color:var(--red-dark);font-weight:850}.record-main{min-width:0}.record-main strong,.record-main small{display:block}.record-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-main small{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-amount{white-space:nowrap}.record-chevron{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f2f3f5;font-size:1.25rem;transition:transform .18s}.record-row[open] .record-chevron{transform:rotate(180deg);background:var(--red-soft);color:var(--red)}.record-details{display:grid;gap:14px;padding:0 16px 17px;border-top:1px solid var(--line);background:#fafafa}.record-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding-top:14px}.record-meta>span{min-width:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.record-meta small,.record-meta strong{display:block}.record-meta strong{margin-top:3px;overflow-wrap:anywhere}.record-copy{padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--line)}.record-copy small{display:block;margin-bottom:5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.record-copy p{margin:0;white-space:normal}.record-copy.warning{border-color:#efd8a5;background:#fffaf0}.record-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.record-actions form{margin:0}.compact-records .record-details{padding-bottom:14px}.project-gallery-panel [data-collapsible-panel]{padding-top:4px}.audio-stop-button,.audio-cancel-button{min-height:40px;border-radius:12px;padding:0 13px;font-weight:800}.audio-stop-button{border:1px solid var(--red);background:var(--red);color:#fff;animation:voice-pulse 1.2s infinite}.audio-cancel-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.audio-stop-button[hidden],.audio-cancel-button[hidden],.audio-record-button[hidden]{display:none!important}.audio-recording-active{box-shadow:inset 0 3px 0 var(--red)}.schedule-person{color:var(--red)!important;font-weight:750;margin:2px 0}
@media(max-width:820px){.record-row>summary{grid-template-columns:78px minmax(0,1fr) auto 28px}.record-row>summary>.record-amount{display:none}.record-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.record-row>summary{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:13px}.record-date{grid-column:1;grid-row:1}.record-chevron{grid-column:2;grid-row:1}.record-main{grid-column:1/-1;grid-row:2}.record-row>summary>.record-amount{display:block;grid-column:1;grid-row:3;justify-self:start}.record-row>summary>.badge{grid-column:2;grid-row:3;justify-self:end}.record-details{padding:0 13px 14px}.record-meta{grid-template-columns:1fr}.record-actions{align-items:stretch;flex-direction:column}.record-actions .button,.record-actions form,.record-actions form .button{width:100%}.project-gallery-panel .panel-header{align-items:stretch;flex-direction:column}.project-gallery-panel .panel-header .button{width:100%}.audio-stop-button{flex:1}.audio-cancel-button{flex:0 0 auto}}
.person-card{align-content:start;flex-wrap:wrap}.person-summary{min-width:0}.person-information{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1 0 100%;gap:9px;margin:5px 0 0;padding-top:14px;border-top:1px solid var(--line)}.person-information>div{min-width:0;padding:10px 11px;border-radius:11px;background:#f7f7f8}.person-information dt{color:var(--muted);font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.person-information dd{margin:3px 0 0;font-weight:700;overflow-wrap:anywhere}.person-card>.person-actions{flex:1 0 100%;padding-top:11px;border-top:1px solid var(--line)}.audio-preview{display:grid;grid-template-columns:auto minmax(150px,360px);align-items:center;gap:8px 12px;margin-top:9px;padding:10px 12px;border:1px solid #cfe5d7;border-radius:13px;background:#edf8f1}.audio-preview[hidden]{display:none!important}.audio-preview strong{color:#17643d;font-size:.76rem}.audio-preview audio{width:100%;height:38px}
@media(max-width:820px){.person-information{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.person-information{grid-template-columns:1fr}.audio-preview{grid-template-columns:1fr}.audio-preview audio{width:100%}}

/* Tableau de bord v1.9 */
.welcome-hero.welcome-compact{min-height:0;padding:18px 24px;background:linear-gradient(120deg,var(--red-dark),var(--red) 68%,#df3150)}.welcome-compact:after{width:180px;height:180px;right:-54px;bottom:-83px;border-width:34px}.welcome-compact h1{font-size:clamp(1.45rem,2.4vw,2rem);margin:0 0 3px}.welcome-compact time{display:block;color:rgba(255,255,255,.86);font-size:.84rem;font-weight:700;text-transform:capitalize}
.quick-action-form{grid-template-columns:minmax(220px,1fr) auto}.quick-action-form.needs-project{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}.quick-action-field{display:grid;gap:7px;min-width:0}.quick-action-field>span:first-child{font-size:.75rem;font-weight:800;letter-spacing:.03em}.designed-select{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;min-height:52px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.16);overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s}.designed-select:focus-within{border-color:var(--red);box-shadow:0 0 0 4px rgba(200,16,46,.15),0 10px 26px rgba(0,0,0,.18);transform:translateY(-1px)}.designed-select-icon{display:grid!important;place-items:center;width:34px;height:34px;margin-left:8px;border-radius:10px;background:var(--red-soft);color:var(--red-dark);font-size:1.05rem;font-weight:900;pointer-events:none}.quick-action-form .designed-select select{grid-column:1/-1;grid-row:1;z-index:1;width:100%;min-width:0;height:50px;padding:0 40px 0 52px;border:0!important;border-radius:0;background:transparent!important;color:var(--ink);font-weight:760;appearance:none;box-shadow:none}.quick-action-form .designed-select select:focus{outline:0;box-shadow:none}.designed-select-arrow{grid-column:3;grid-row:1;z-index:2;color:var(--red-dark);font-size:1.2rem;font-weight:900;pointer-events:none}.designed-select-icon{grid-column:1;grid-row:1;z-index:2}.quick-action-form>.button{min-height:52px;padding-inline:22px}
.panel-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.panel-header-actions>a{color:var(--red);font-size:.84rem;font-weight:800}.collapse-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:8px 10px 8px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-size:.82rem;font-weight:820;box-shadow:0 3px 10px rgba(30,32,37,.04);transition:background .18s,border-color .18s,color .18s,box-shadow .18s}.collapse-button:hover{border-color:color-mix(in srgb,var(--red) 35%,var(--line));box-shadow:0 7px 18px rgba(30,32,37,.08)}.collapse-button-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f1f2f4;color:var(--red-dark);font-size:1.1rem;transition:transform .2s,background .2s}.collapse-button.is-open{border-color:color-mix(in srgb,var(--red) 32%,#fff);color:var(--red-dark);background:var(--red-soft)}.collapse-button.is-open .collapse-button-icon{transform:rotate(180deg);background:#fff}
.dashboard-planning-content{padding-top:2px}.schedule-legend{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-bottom:15px;padding:11px 13px;border-radius:13px;background:#f7f7f8}.schedule-legend span{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:.76rem;font-weight:760}.schedule-legend i{width:10px;height:10px;border-radius:50%;background:currentColor}.schedule-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.schedule-day{min-width:0;min-height:158px;border:1px solid var(--line);border-radius:15px;background:#fafafa;overflow:hidden}.schedule-day>header{display:flex;align-items:baseline;gap:5px;padding:10px 11px;border-bottom:1px solid var(--line);background:#fff}.schedule-day>header span{color:var(--muted);font-size:.67rem;font-weight:820;text-transform:uppercase}.schedule-day>header strong{font-size:1.08rem}.schedule-day>header small{overflow:hidden;color:var(--muted);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.schedule-day.is-today{border-color:color-mix(in srgb,var(--red) 48%,#fff);box-shadow:0 0 0 2px var(--red-soft)}.schedule-day.is-today>header{background:var(--red-soft);color:var(--red-dark)}.schedule-day-events{display:grid;gap:6px;padding:8px}.schedule-event{min-width:0;padding:7px 8px;border-left:4px solid currentColor;border-radius:8px;background:color-mix(in srgb,currentColor 10%,#fff);color:#50647e}.schedule-event strong,.schedule-event span,.schedule-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-event strong{font-size:.68rem}.schedule-event span{color:var(--ink);font-size:.7rem;font-weight:770}.schedule-event small{color:var(--muted);font-size:.65rem}.schedule-day-empty{display:block;padding:8px 2px;color:#a1a4aa;font-size:.68rem}.employee-color-1{color:#c8102e!important}.employee-color-2{color:#2463a8!important}.employee-color-3{color:#198754!important}.employee-color-4{color:#a15d00!important}.employee-color-5{color:#7048a8!important}.employee-color-6{color:#00838f!important}.employee-color-7{color:#b33b86!important}.employee-color-8{color:#52606d!important}
.record-chevron{border:1px solid var(--line);background:#fff;box-shadow:0 2px 7px rgba(30,32,37,.05)}.manual-expense-fields>summary,.optional-integration>summary{position:relative;display:flex;align-items:center;min-height:40px;padding:8px 42px 8px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;list-style:none}.manual-expense-fields>summary::-webkit-details-marker,.optional-integration>summary::-webkit-details-marker{display:none}.manual-expense-fields>summary:after,.optional-integration>summary:after{content:'⌄';position:absolute;right:10px;top:50%;display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#f1f2f4;color:var(--red-dark);font-size:1.1rem;transform:translateY(-50%);transition:transform .18s}.manual-expense-fields[open]>summary:after,.optional-integration[open]>summary:after{transform:translateY(-50%) rotate(180deg)}
.push-status-button[hidden]{display:none!important}
@media(max-width:1100px){.schedule-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.quick-action-form,.quick-action-form.needs-project{grid-template-columns:1fr}.dashboard-planning-panel .panel-header{align-items:flex-start}.schedule-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.welcome-hero.welcome-compact{padding:15px 17px}.welcome-compact h1{font-size:1.36rem}.welcome-compact time{font-size:.77rem}.panel-header-actions{width:100%;justify-content:space-between}.panel-header-actions .collapse-button{flex:1}.dashboard-planning-panel .panel-header,.project-gallery-panel .panel-header{align-items:stretch;flex-direction:column}.project-gallery-panel .collapse-button{width:100%}.schedule-legend{max-height:95px;overflow:auto}.schedule-calendar{grid-template-columns:1fr 1fr;gap:7px}.schedule-day{min-height:132px}.schedule-day>header{padding:8px}.schedule-day-events{padding:6px}.schedule-event{padding:6px}.quick-action-panel{padding:18px}.designed-select{min-height:50px}.quick-action-form>.button{width:100%}}

/* Sécurité & conseils */
.safety-hero{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(280px,.65fr);align-items:center;gap:18px;margin-bottom:22px;padding:22px 24px;border-radius:var(--radius);background:linear-gradient(130deg,#17191e,#262a31);color:#fff;box-shadow:0 18px 48px rgba(23,25,30,.18)}.safety-hero h1{margin:0 0 4px;font-size:clamp(1.7rem,3vw,2.35rem)}.safety-hero p{margin:0;color:#c9ccd2}.safety-hero-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--red);color:#fff;font-size:1.8rem;font-weight:900;box-shadow:0 10px 25px rgba(200,16,46,.3)}.safety-hero aside{display:grid;gap:4px;padding:14px 16px;border:1px solid rgba(255,255,255,.16);border-radius:15px;background:rgba(255,255,255,.07)}.safety-hero aside small{color:#bfc2c9;font-size:.67rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.safety-hero aside strong{font-size:.86rem;line-height:1.45}.safety-layout{display:grid;grid-template-columns:minmax(235px,.34fr) minmax(0,1fr);align-items:start;gap:22px}.safety-sidebar{position:sticky;top:100px}.daily-checklist{display:grid;gap:8px;margin-top:16px}.daily-checklist label{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fafafa;cursor:pointer}.daily-checklist input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--red)}.daily-checklist span{font-size:.78rem;font-weight:720;line-height:1.35}.daily-checklist input:checked+span{text-decoration:line-through;color:var(--muted)}.checklist-progress{position:relative;height:24px;margin-top:13px;border-radius:999px;background:#eceef1;overflow:hidden}.checklist-progress>span{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--red-dark),var(--red));transition:width .25s}.checklist-progress small{position:relative;z-index:1;display:grid;place-items:center;height:100%;color:var(--ink);font-size:.66rem;font-weight:850}.safety-warning{margin:16px 0 0;padding:12px;border-left:4px solid var(--red);border-radius:0 10px 10px 0;background:var(--red-soft);color:var(--red-dark);font-size:.75rem}.safety-directory-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.safety-search{display:grid;grid-template-columns:auto minmax(170px,250px);align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.safety-search span{color:var(--muted);font-size:1.2rem}.safety-search input{height:42px;padding:0;border:0;background:transparent}.safety-search input:focus{outline:0}.safety-filters{display:flex;gap:8px;overflow-x:auto;margin:16px 0;padding-bottom:2px}.safety-filters button{flex:0 0 auto;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.75rem;font-weight:800}.safety-filters button.active{border-color:var(--red);background:var(--red);color:#fff}.safety-cards{display:grid;gap:9px}.safety-card{overflow:hidden;border:1px solid var(--line);border-left:5px solid #6c757d;border-radius:15px;background:#fff;transition:box-shadow .18s,border-color .18s}.safety-card.tone-red{border-left-color:#c8102e}.safety-card.tone-amber{border-left-color:#d98500}.safety-card.tone-green{border-left-color:#198754}.safety-card[open]{box-shadow:0 10px 26px rgba(30,32,37,.08)}.safety-card>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px;cursor:pointer;list-style:none}.safety-card>summary::-webkit-details-marker{display:none}.safety-card-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#f1f2f4;color:var(--ink);font-size:1.05rem;font-weight:900}.tone-red .safety-card-icon{background:#fff0f2;color:#a3172e}.tone-amber .safety-card-icon{background:#fff7e8;color:#9a5b00}.tone-green .safety-card-icon{background:#edf8f1;color:#17643d}.safety-card>summary strong,.safety-card>summary small{display:block}.safety-card>summary small{margin-top:2px;font-size:.74rem}.safety-card-chevron{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--red-dark);font-size:1.2rem;transition:transform .18s}.safety-card[open] .safety-card-chevron{transform:rotate(180deg);background:var(--red-soft)}.safety-card-content{padding:2px 16px 16px 66px;border-top:1px solid var(--line);background:#fafafa}.safety-card-content ul{margin:13px 0;padding-left:18px}.safety-card-content li{margin:7px 0;font-size:.81rem}.stop-work{display:grid;gap:3px;padding:11px 12px;border-radius:11px;background:#fff0f2;color:#8b172a;font-size:.77rem}.safety-quiz .panel-header>span{color:var(--red-dark);font-weight:850}.quiz-question{padding:15px 0;border-top:1px solid var(--line)}.quiz-question:first-of-type{border-top:0}.quiz-question>strong{display:block;margin-bottom:10px}.quiz-question>div{display:flex;gap:8px;flex-wrap:wrap}.quiz-question button{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:.78rem;font-weight:760}.quiz-question button:hover:not(:disabled){border-color:var(--red);color:var(--red)}.quiz-question button.correct{border-color:#198754;background:#edf8f1;color:#17643d}.quiz-question button.incorrect{border-color:#c8102e;background:#fff0f2;color:#8b172a}.quiz-question p{margin:10px 0 0;padding:9px 11px;border-radius:10px;background:#f2f3f5;color:var(--muted);font-size:.76rem}.official-sources p{color:var(--muted)}.official-sources>div{display:flex;flex-wrap:wrap;gap:8px}.official-sources a{padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:#fafafa;color:var(--red-dark);font-size:.73rem;font-weight:760}.official-sources a:hover{border-color:var(--red)}
@media(max-width:1050px){.safety-hero{grid-template-columns:auto minmax(0,1fr)}.safety-hero aside{grid-column:1/-1}.safety-layout{grid-template-columns:1fr}.safety-sidebar{position:static}.daily-checklist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.safety-hero{grid-template-columns:1fr;padding:18px}.safety-hero-icon{width:48px;height:48px}.safety-directory-heading{align-items:stretch;flex-direction:column}.safety-search{grid-template-columns:auto minmax(0,1fr)}.daily-checklist{grid-template-columns:1fr}.safety-card>summary{gap:9px;padding:12px}.safety-card-icon{width:34px;height:34px}.safety-card-content{padding:2px 12px 13px}.quiz-question>div{display:grid;grid-template-columns:1fr}.quiz-question button{width:100%}.official-sources>div{display:grid}.official-sources a{width:100%}}

/* Les longues listes ne sont calculées par le navigateur qu'à l'approche de l'écran. */
.record-row,.person-card,.project-card,.gallery-item,.safety-card{content-visibility:auto;contain-intrinsic-size:auto 88px}
.nav{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3a3e47 transparent}
.voice-download-link{color:#fff;font-size:.66rem;text-decoration:underline;text-underline-offset:2px;opacity:.82}
.conversation-list-row{position:relative;display:flex;align-items:stretch;border-bottom:1px solid var(--line)}.conversation-list-row:last-child{border-bottom:0}.conversation-link{display:flex;align-items:center;gap:13px;min-width:0;flex:1;padding:16px 64px 16px 20px;transition:.15s}.conversation-link:hover{background:#fafafa}.conversation-delete{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:2}.conversation-delete .icon-button{width:36px;height:36px}.message-footer{display:flex;align-items:center;gap:8px;margin:3px 8px 0}.message.mine .message-footer{justify-content:flex-end}.message-footer time{margin:0}.message-delete-button{border:0;background:transparent;color:#9a2034;padding:2px;font-size:.62rem;font-weight:800;text-decoration:underline;cursor:pointer}.message.mine .message-delete-button{color:#9a2034}

/* Équipe, sous-traitants et navigation du planning. */
.section-tabs{display:flex;align-items:center;gap:8px;margin:0 0 18px;padding:5px;width:max-content;max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(30,32,37,.04)}.section-tabs a{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:11px;color:var(--muted);font-size:.8rem;font-weight:800;white-space:nowrap}.section-tabs a span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#f0f1f3;font-size:.68rem}.section-tabs a.active{background:var(--ink);color:#fff}.section-tabs a.active span{background:rgba(255,255,255,.17);color:#fff}.badge.subcontractor{background:#f1ebff;color:#6541a5}.badge.employee{background:#eaf2fb;color:#245f9d}
.planning-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.planning-mode{display:flex;gap:5px;padding:3px;border-radius:13px;background:#f2f3f5}.planning-mode a{padding:8px 16px;border-radius:10px;color:var(--muted);font-size:.8rem;font-weight:850}.planning-mode a.active{background:#fff;color:var(--red);box-shadow:0 4px 12px rgba(30,32,37,.1)}.planning-period-nav{display:flex;align-items:center;gap:7px}.planning-arrow{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--red);font-size:1.2rem;font-weight:900}.planning-date-jump{position:relative}.planning-today{min-height:40px;padding:7px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:.78rem;font-weight:850}.planning-today span{color:var(--muted);font-weight:650}.planning-date-picker{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.planning-day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:0 0 18px}.planning-day-strip a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted)}.planning-day-strip span{font-size:.67rem;font-weight:800;text-transform:uppercase}.planning-day-strip strong{font-size:1rem}.planning-day-strip a.active{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 7px 18px rgba(200,16,46,.2)}.planning-forecast-panel .panel-header small{display:block;margin-top:4px}.planning-table .planning-entry td:first-child{border-left:4px solid transparent}.planning-table .planning-color-0 td:first-child{border-left-color:#c8102e}.planning-table .planning-color-1 td:first-child{border-left-color:#2463a8}.planning-table .planning-color-2 td:first-child{border-left-color:#198754}.planning-table .planning-color-3 td:first-child{border-left-color:#d98500}.planning-table .planning-color-4 td:first-child{border-left-color:#7048b8}.planning-table .planning-color-5 td:first-child{border-left-color:#148a91}
