:root{--primary: #0f172a;--primary-light: #1e293b;--accent: #10b981;--accent-hover: #059669;--bg-main: #f8fafc;--bg-card: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border-light: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--radius-md: .5rem;--radius-lg: .75rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-main);line-height:1.6;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}html,body{max-width:100vw;overflow-x:hidden;margin:0;padding:0}#root{max-width:100vw;overflow-x:hidden}.mobile-header{display:none;width:100%;box-sizing:border-box}.mobile-overlay,.mobile-close-btn{display:none}.btn-icon-tiny{background:#ffffff1a;border:none;color:#fff;padding:2px 4px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-icon-tiny:hover{background:#fff3}.calendar-day:hover{background:#ffffff1a!important}.document-row:hover{background-color:#f8fafc}.app-layout{display:flex;min-height:100vh;background-color:var(--bg-main)}.sidebar{width:280px;background-color:var(--primary);color:#fff;display:flex;flex-direction:column;padding:1rem 1.5rem 1.5rem;flex-shrink:0;transition:transform .3s ease;z-index:50}.sidebar-header{font-size:1.5rem;font-weight:700;color:var(--accent);margin-bottom:2rem;display:flex;align-items:center;gap:.5rem;position:relative}.nav-settings{margin-top:auto;border-top:1px solid var(--primary-light);padding-top:1rem}.main-content{flex:1;padding:2rem;overflow-y:auto;height:100vh}.text-h1{font-size:2rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2}.text-h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.text-h3{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.text-muted{color:var(--text-muted)}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.modal-overlay{position:fixed;inset:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .3s ease-out forwards}.modal-content{background:#fff;padding:2.5rem;border-radius:16px;width:90%;max-width:500px;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .4s cubic-bezier(.16,1,.3,1) forwards}.modal-close{position:absolute;top:1.25rem;right:1.25rem;background:none;border:none;cursor:pointer;color:#94a3b8;padding:.5rem;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:#f1f5f9;color:#ef4444}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.app-layout{flex-direction:column}.mobile-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:40}.sidebar{position:fixed;top:0;left:0;bottom:0;transform:translate(-100%);width:85%;@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}max-width:300px}.sidebar .modal-overlay{position:fixed;inset:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .3s ease-out forwards}.sidebar .modal-content{background:#fff;padding:2.5rem;border-radius:16px;width:90%;max-width:500px;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .4s cubic-bezier(.16,1,.3,1) forwards}.sidebar .modal-close{position:absolute;top:1.25rem;right:1.25rem;background:none;border:none;cursor:pointer;color:#94a3b8;padding:.5rem;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.sidebar .modal-close:hover{background:#f1f5f9;color:#ef4444}.sidebar .spin{animation:spin 1s linear infinite}.sidebar.open{transform:translate(0)}.mobile-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-close-btn{display:flex;position:absolute;top:10px;right:10px;background:transparent;border:none;color:#fff;cursor:pointer}.main-content{padding:1rem;height:auto;width:100%;max-width:100vw;overflow-x:hidden;box-sizing:border-box}.dashboard-container,.editor-container{width:100%;max-width:100%;overflow-x:hidden}.responsive-grid{display:grid!important;grid-template-columns:1fr!important;gap:1.5rem!important;width:100%!important;max-width:100%!important;box-sizing:border-box}.responsive-stack{flex-direction:column!important;align-items:stretch!important;gap:1rem!important}.preview-mobile-wrapper{width:100%;overflow-x:auto;padding-bottom:1rem;-webkit-overflow-scrolling:touch}.preview-scale{min-width:800px;transform-origin:top left}.item-row-responsive{grid-template-columns:1fr!important;gap:1rem!important;background:#f8fafc;padding:1.5rem!important;border-radius:var(--radius-md);border:1px solid var(--border-light)}.item-row-responsive>*{width:100%!important}.item-row-responsive .item-desc{border-bottom:1px solid var(--border-light);padding-bottom:.5rem}.item-row-responsive:before{content:"Détails de la ligne";font-weight:700;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.qr-banner{display:none!important}}@media(min-width:769px)and (max-width:1100px){.responsive-grid-tablet{grid-template-columns:1fr!important}.qr-banner{display:none!important}}.qr-banner{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;padding:1rem 2rem;border-radius:var(--radius-lg);margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;box-shadow:var(--shadow-md);border:1px solid rgba(255,255,255,.1);animation:slideDown .5s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.qr-banner-content{display:flex;align-items:center;gap:1.5rem;flex:1}.qr-code-small{background:#fff;padding:.5rem;border-radius:var(--radius-md);width:80px;height:80px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.qr-banner-text h4{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--accent)}.qr-banner-text p{margin:0;font-size:.9rem;opacity:.9;line-height:1.4}.qr-banner-close{background:#ffffff1a;border:none;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.qr-banner-close:hover{background:#fff3;color:#ef4444}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;transition:all .2s;border:none;text-decoration:none;font-size:.95rem}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 6px -1px #10b98133}.btn-secondary{background-color:var(--bg-main);color:var(--text-main);border:1px solid var(--border-light)}.btn-secondary:hover{background-color:var(--border-light);color:var(--primary)}.btn-ghost{background:transparent;color:#ffffffb3}.btn-ghost:hover{background:#ffffff1a;color:#fff}.btn-ghost.active{background:#10b9811a;color:var(--accent)}.form-group{margin-bottom:1rem}.label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-main)}.input{width:100%;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-card);transition:border-color .2s,box-shadow .2s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #10b9811a}.mobile-home-container{min-height:100vh;background-color:#f8fafc;padding:1.5rem 1.5rem 2rem;display:flex;flex-direction:column;gap:2rem}.mobile-home-header{display:flex;justify-content:space-between;align-items:flex-start}.user-welcome h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin:0}.user-welcome p{font-size:.9rem;color:#64748b;margin:.25rem 0 0}.settings-btn{background:#fff;border:1px solid #e2e8f0;padding:.75rem;border-radius:12px;color:#64748b;cursor:pointer;box-shadow:0 1px 2px #0000000d}.mobile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;flex:1}.mobile-tile{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 6px -1px #0000000d;text-align:center;border-bottom:4px solid var(--tile-color)}.mobile-tile:active{transform:scale(.95);background-color:#f1f5f9}.tile-icon{color:var(--tile-color);background:color-mix(in srgb,var(--tile-color),white 90%);padding:1rem;border-radius:16px;display:flex;align-items:center;justify-content:center}.tile-title{font-size:.9rem;font-weight:700;color:#1e293b}.mobile-home-footer{padding-top:1rem}.logout-button{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:#fef2f2;border:1px solid #fee2e2;color:#ef4444;border-radius:12px;font-weight:600;cursor:pointer}@media(orientation:landscape)and (max-width:900px){.mobile-home-container{flex-direction:row;flex-wrap:wrap;align-items:center}.mobile-home-header{width:100%}.mobile-grid{grid-template-columns:repeat(4,1fr);width:100%}.mobile-tile{padding:1rem}.mobile-home-footer{width:100%}}@media(min-width:600px)and (max-width:1024px){.mobile-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}.mobile-tile{padding:2.5rem}.tile-title{font-size:1.1rem}}
