:root{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-primary-light: #818cf8;--color-secondary: #10b981;--color-accent: #f59e0b;--color-danger: #ef4444;--color-danger-light: #fecaca;--color-success: #22c55e;--color-warning: #eab308;--color-bg-primary: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-bg-card: #1e293b;--color-bg-card-hover: #273548;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--color-border-light: #475569;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .25);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .4);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}.app-layout{display:flex;min-height:100vh}.sidebar{width:280px;background:linear-gradient(180deg,var(--color-bg-secondary) 0%,var(--color-bg-primary) 100%);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--color-border)}.sidebar-logo{display:flex;align-items:center;gap:.75rem}.sidebar-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:var(--shadow-glow)}.sidebar-logo-text{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-nav{flex:1;padding:1rem;overflow-y:auto}.nav-section{margin-bottom:1.5rem}.nav-section-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast);margin-bottom:.25rem}.nav-link:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.nav-link.active{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-glow)}.nav-link-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.main-content{flex:1;margin-left:280px;padding:2rem;min-height:100vh}.page-header{margin-bottom:2rem}.page-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.5rem}.page-subtitle{color:var(--color-text-secondary);font-size:1rem}.page-actions{display:flex;gap:1rem;margin-top:1.5rem}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;transition:all var(--transition-normal)}.card:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-md)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.card-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.card-description{color:var(--color-text-secondary);font-size:.875rem;margin-top:.25rem}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:1200px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;font-size:.875rem;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-card-hover);border-color:var(--color-border-light)}.btn-success{background:linear-gradient(135deg,var(--color-secondary) 0%,#059669 100%);color:#fff}.btn-danger{background:linear-gradient(135deg,var(--color-danger) 0%,#dc2626 100%);color:#fff}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.btn-sm{padding:.5rem 1rem;font-size:.8125rem}.btn-lg{padding:1rem 2rem;font-size:1rem}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.form-label-required:after{content:"*";color:var(--color-danger);margin-left:.25rem}.form-input{width:100%;padding:.75rem 1rem;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.875rem;transition:all var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f133}.form-input::placeholder{color:var(--color-text-muted)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem;padding-right:2.5rem}.form-textarea{min-height:120px;resize:vertical}.form-checkbox-wrapper{display:flex;align-items:center;gap:.75rem}.form-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--color-primary)}.form-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:.375rem}.form-error{font-size:.75rem;color:var(--color-danger);margin-top:.375rem}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-primary{background:#6366f133;color:var(--color-primary-light)}.badge-success{background:#22c55e33;color:var(--color-success)}.badge-warning{background:#eab30833;color:var(--color-warning)}.badge-danger{background:#ef444433;color:var(--color-danger)}.badge-secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.toggle-wrapper{display:flex;align-items:center;gap:.75rem}.toggle{position:relative;width:48px;height:26px;appearance:none;background:var(--color-bg-tertiary);border-radius:9999px;cursor:pointer;transition:all var(--transition-fast)}.toggle:before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--color-text-secondary);border-radius:50%;transition:all var(--transition-fast)}.toggle:checked{background:var(--color-primary)}.toggle:checked:before{left:25px;background:#fff}.modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn var(--transition-fast)}.modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-normal)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border)}.modal-title{font-size:1.25rem;font-weight:600}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid var(--color-border)}.tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.tab{padding:.75rem 1rem;color:var(--color-text-secondary);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-fast)}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.draggable-item{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;margin-bottom:.5rem;cursor:grab;transition:all var(--transition-fast)}.draggable-item:hover{border-color:var(--color-border-light)}.draggable-item.dragging{opacity:.5;cursor:grabbing}.drag-handle{display:flex;flex-direction:column;gap:2px;width:12px;cursor:grab;padding:.25rem}.drag-handle span{display:block;width:100%;height:2px;background:var(--color-text-muted);border-radius:1px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-state-icon{width:64px;height:64px;background:var(--color-bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.5rem}.empty-state-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.empty-state-description{color:var(--color-text-secondary);max-width:400px;margin-bottom:1.5rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s ease-in-out infinite}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.devis-card{position:relative;overflow:hidden}.devis-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-secondary) 100%);opacity:0;transition:opacity var(--transition-normal)}.devis-card:hover:before{opacity:1}.devis-card-stats{display:flex;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.devis-stat{display:flex;align-items:center;gap:.5rem;color:var(--color-text-secondary);font-size:.875rem}.devis-stat-icon{color:var(--color-text-muted)}.preview-container{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem}.preview-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--color-text-primary)}.spinner{width:40px;height:40px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:fixed;inset:0;background:#0f172ae6;display:flex;align-items:center;justify-content:center;z-index:9999}.calculation-result{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-top:1.5rem}.calculation-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.calculation-row:last-child{border-bottom:none}.calculation-row.total{font-size:1.25rem;font-weight:600;color:var(--color-primary-light);margin-top:.5rem;padding-top:1rem;border-top:2px solid var(--color-primary);border-bottom:none}.calculation-label{color:var(--color-text-secondary)}.calculation-value{color:var(--color-text-primary);font-weight:500}@media(max-width:1024px){.sidebar{transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--color-bg-primary) 0%,#0c1222 100%);position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 30%,rgba(99,102,241,.1) 0%,transparent 50%),radial-gradient(circle at 70% 70%,rgba(16,185,129,.08) 0%,transparent 50%);animation:authBgMove 20s ease-in-out infinite alternate}@keyframes authBgMove{0%{transform:translate(0)}to{transform:translate(5%,5%)}}.auth-card{width:100%;max-width:420px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:2.5rem;position:relative;z-index:1;box-shadow:var(--shadow-lg),0 0 60px #6366f11a;animation:slideUp var(--transition-slow)}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1rem}.auth-logo-icon{font-size:3rem;filter:drop-shadow(0 0 10px rgba(99,102,241,.5))}.auth-logo-text{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{color:var(--color-text-secondary);font-size:.9375rem}.auth-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--color-bg-primary);border-radius:var(--radius-md);padding:.25rem}.auth-tab{flex:1;padding:.75rem 1rem;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-weight:500;font-size:.875rem;transition:all var(--transition-fast)}.auth-tab:hover{color:var(--color-text-primary)}.auth-tab.active{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-glow)}.auth-form{margin-bottom:1.5rem}.auth-submit{width:100%;margin-top:.5rem}.auth-error{padding:.75rem 1rem;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-danger);font-size:.875rem;margin-bottom:1rem}.auth-success{padding:.75rem 1rem;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-md);color:var(--color-success);font-size:.875rem;margin-bottom:1rem}.auth-footer{text-align:center;padding-top:1.5rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.875rem}.auth-link{color:var(--color-primary-light);font-weight:500;transition:color var(--transition-fast)}.auth-link:hover{color:var(--color-primary)}.user-info{padding:1rem;border-top:1px solid var(--color-border);display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;color:#fff}.user-details{flex:1;min-width:0}.user-name{font-weight:500;font-size:.875rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{padding:.5rem;border-radius:var(--radius-sm);color:var(--color-text-muted);transition:all var(--transition-fast)}.logout-btn:hover{background:var(--color-bg-tertiary);color:var(--color-danger)}.embed-container{min-height:100vh;padding:1.5rem;background:var(--color-bg-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.embed-loading,.embed-error,.embed-success{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:var(--color-text-primary)}.embed-success h2{font-size:1.5rem;margin-bottom:.5rem}.embed-form{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.embed-title{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;color:var(--color-text-primary)}.embed-field{margin-bottom:1.25rem}.embed-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.embed-label-required:after{content:"*";color:var(--color-danger);margin-left:.25rem}.embed-hint{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.5rem;margin-top:-.25rem}.embed-input{width:100%;padding:.75rem 1rem;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.875rem;transition:all var(--transition-fast)}.embed-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f133}.embed-textarea{min-height:100px;resize:vertical}.embed-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem;padding-right:2.5rem}.embed-quantity{display:flex;align-items:center;gap:.75rem}.embed-quantity .embed-input{max-width:150px}.embed-unit{color:var(--color-text-muted);font-size:.875rem}.embed-upload{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:1.5rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.embed-checkboxes{display:flex;flex-direction:column;gap:.5rem}.embed-checkbox-label{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--color-bg-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.embed-checkbox-label:hover{background:var(--color-bg-tertiary)}.embed-checkbox{width:1.125rem;height:1.125rem;margin-top:2px;accent-color:var(--color-primary);flex-shrink:0}.embed-checkbox-content,.embed-radio-content{flex:1}.embed-checkbox-header,.embed-radio-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.embed-option-description{margin:4px 0 0;font-size:.85rem;color:var(--color-text-muted);line-height:1.4}.embed-combo-bloc{display:flex;flex-direction:column;gap:1.25rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.embed-combo-label{display:block;font-size:.85rem;font-weight:500;color:var(--color-text-muted);margin-bottom:.5rem}.embed-combo-quantity{padding-bottom:.5rem}.embed-combo-options{padding-top:.5rem;border-top:1px solid var(--color-border)}.embed-radio-group{display:flex;flex-direction:column;gap:.5rem}.embed-radio-label{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--color-bg-primary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.embed-radio-label:hover{background:var(--color-bg-tertiary)}.embed-radio-label:has(.embed-radio:checked){background:var(--color-bg-tertiary);border-color:var(--color-primary)}.embed-radio{width:1.125rem;height:1.125rem;margin-top:2px;accent-color:var(--color-primary);flex-shrink:0}.embed-radio-title{font-weight:500}.embed-price{margin-left:auto;color:var(--color-success);font-weight:500;font-size:.875rem;white-space:nowrap}.embed-fixed-price{padding:.75rem 1rem;background:var(--color-bg-primary);border-radius:var(--radius-md);color:var(--color-success);font-weight:500}.embed-estimate{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.embed-estimate h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-primary)}.embed-estimate-lines{margin-bottom:1rem}.embed-estimate-line{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--color-border);font-size:.875rem}.embed-estimate-summary{background:var(--color-bg-primary);padding:1rem;border-radius:var(--radius-md)}.embed-estimate-row{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.875rem}.embed-estimate-muted{color:var(--color-text-muted)}.embed-estimate-total{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border);font-size:1.125rem;font-weight:600;color:var(--color-success)}.embed-client-info{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.embed-client-info h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-primary)}.embed-submit{width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;font-weight:600;font-size:1rem;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.embed-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.embed-submit:disabled{opacity:.6;cursor:not-allowed}.embed-quote-summary{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.embed-total{font-size:1.25rem;color:var(--color-success)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drag-list{display:flex;flex-direction:column;gap:.5rem}.drag-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.drag-item:hover{border-color:var(--color-border-light)}.drag-item-inactive{opacity:.6}.drag-item-error{border-color:var(--color-warning)}.drag-handle{color:var(--color-text-muted);cursor:grab;font-size:.875rem;letter-spacing:2px}.drag-handle:active{cursor:grabbing}.tab-active{color:var(--color-primary)!important;border-bottom-color:var(--color-primary)!important}:root{--color-primary-alpha: rgba(99, 102, 241, .15);--color-bg-elevated: var(--color-bg-card);--radius-full: 9999px}.file-upload-container{display:flex;flex-direction:column;gap:1rem}.file-upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-primary);cursor:pointer;transition:all var(--transition-fast)}.file-upload-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-alpha)}.file-upload-dropzone.dragging{border-color:var(--color-primary);background:var(--color-primary-alpha);border-style:solid}.file-upload-dropzone.uploading{cursor:wait;opacity:.7}.file-upload-content{text-align:center}.file-upload-icon{font-size:2.5rem;margin-bottom:.5rem}.file-upload-text{margin:0;color:var(--color-text);font-size:.95rem}.file-upload-hint{margin:.5rem 0 0;color:var(--color-text-muted);font-size:.8rem}.file-upload-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--color-text-muted)}.file-upload-error{padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#ef4444;font-size:.875rem}.file-upload-list{display:flex;flex-direction:column;gap:.5rem}.file-upload-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.file-upload-thumbnail{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm)}.file-upload-icon-small{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.file-upload-info{flex:1;min-width:0}.file-upload-name{display:block;font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-upload-size{display:block;font-size:.75rem;color:var(--color-text-muted)}.file-upload-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.file-upload-remove:hover{background:#ef44441a;color:#ef4444}.linktree-page{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.linktree-container{width:100%;max-width:420px}.linktree-header{text-align:center;margin-bottom:2rem}.linktree-avatar{width:80px;height:80px;margin:0 auto 1rem;background:linear-gradient(135deg,var(--color-primary),#8b5cf6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;box-shadow:0 8px 32px #6366f14d}.linktree-title{color:#fff;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.linktree-subtitle{color:#ffffffb3;font-size:.95rem;margin:0}.linktree-links{display:flex;flex-direction:column;gap:.75rem}.linktree-link{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:12px;text-decoration:none;color:#fff;transition:all .3s ease}.linktree-link:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.linktree-link-icon{font-size:1.5rem;flex-shrink:0}.linktree-link-content{flex:1;min-width:0}.linktree-link-title{display:block;font-weight:600;font-size:1rem}.linktree-link-description{display:block;font-size:.8rem;color:#fff9;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.linktree-link-arrow{font-size:1.25rem;color:#ffffff80;transition:transform .2s ease}.linktree-link:hover .linktree-link-arrow{transform:translate(4px);color:#fff}.linktree-empty{text-align:center;padding:2rem;color:#fff9}.linktree-footer{text-align:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.linktree-footer p{margin:0;font-size:.75rem;color:#fff6}.linktree-loading,.linktree-error{text-align:center;padding:3rem;color:#ffffffb3}.linktree-loading .spinner{margin:0 auto 1rem;border-color:#fff3;border-top-color:#fff}.linktree-settings-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.linktree-settings-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.linktree-settings-icon{font-size:2rem}.linktree-settings-header h3{margin:0 0 .25rem;font-size:1.1rem}.linktree-settings-header p{margin:0;color:var(--color-text-muted);font-size:.875rem}.linktree-settings-url{display:flex;gap:.5rem;margin-bottom:1rem}.linktree-settings-url .form-input{flex:1;background:var(--color-bg-primary)}.linktree-settings-preview{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-primary);text-decoration:none;font-size:.875rem}.linktree-settings-preview:hover{text-decoration:underline}.linktree-settings-section{margin-bottom:2rem}.linktree-settings-section h3{margin:0 0 .5rem;display:flex;align-items:center;gap:.75rem}.linktree-saving{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.linktree-settings-list{display:flex;flex-direction:column;gap:.5rem}.linktree-settings-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:grab;transition:all .2s ease}.linktree-settings-item:hover{border-color:var(--color-primary)}.linktree-settings-item.dragging{opacity:.5;border-style:dashed}.linktree-settings-item.inactive{cursor:default;opacity:.6}.linktree-settings-drag{color:var(--color-text-muted);font-size:1rem;letter-spacing:2px}.linktree-settings-item-content{flex:1}.linktree-settings-item-name{display:block;font-weight:500}.linktree-settings-item-desc{display:block;font-size:.8rem;color:var(--color-text-muted);margin-top:2px}.linktree-settings-badge{font-size:.7rem;padding:.25rem .5rem;border-radius:var(--radius-sm);font-weight:500;text-transform:uppercase}.linktree-settings-badge.active{background:#22c55e26;color:#22c55e}.linktree-settings-badge.inactive{background:#9ca3af26;color:#9ca3af}.linktree-settings-empty{text-align:center;padding:2rem;color:var(--color-text-muted);background:var(--color-bg-primary);border-radius:var(--radius-md)}.text-muted{color:var(--color-text-muted);font-size:.875rem;margin:0 0 1rem}.config-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:2rem;overflow:hidden}.config-section-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.config-section-icon{font-size:2rem;flex-shrink:0}.config-section-title{flex:1}.config-section-title h2{color:var(--color-text-primary);font-size:1.125rem;font-weight:700;margin-bottom:.25rem}.config-section-title p{color:var(--color-text-muted);font-size:.8125rem}.config-status{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.config-status.active{background:#22c55e26;color:#22c55e}.config-section-body{padding:1.5rem}.config-section-body>.config-help-text{margin-bottom:1.5rem}.config-section-body>.config-card{margin-bottom:1rem}.config-section-body>.config-actions{margin-top:1.25rem}.config-message{padding:.875rem 1rem;border-radius:var(--radius-md);margin-bottom:1.5rem;font-size:.875rem;font-weight:500}.config-message.success{background:#22c55e1f;color:#4ade80;border:1px solid rgba(34,197,94,.25)}.config-message.error{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25)}.config-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:1.5rem;overflow:hidden}.config-card-header{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.config-card-icon{font-size:1.5rem;flex-shrink:0;margin-top:.125rem}.config-card-header h3{color:var(--color-text-primary);font-size:1rem;font-weight:600;margin-bottom:.25rem}.config-card-header p{color:var(--color-text-muted);font-size:.8125rem;line-height:1.5}.config-card-body{padding:1.25rem 1.5rem}.config-help-text{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6}.config-help-text a{color:var(--color-primary-light);text-decoration:underline;text-underline-offset:2px}.config-help-text a:hover{color:var(--color-primary)}.config-help-text code{font-family:SF Mono,Fira Code,monospace;font-size:.8em;background:var(--color-bg-primary);padding:.15em .4em;border-radius:var(--radius-sm);color:var(--color-text-primary);word-break:break-all}.config-help-text strong{color:var(--color-text-primary)}.config-field{margin-bottom:1rem}.config-field:last-child{margin-bottom:0}.config-label{display:block;color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;margin-bottom:.5rem}.config-input-group{display:flex;gap:0;position:relative}.config-input-group .form-input{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.config-toggle-visibility{display:flex;align-items:center;justify-content:center;width:3rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast);font-size:1rem}.config-toggle-visibility:hover{background:var(--color-bg-card-hover);color:var(--color-text-primary)}.config-current-key{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-bg-primary);border-radius:var(--radius-md);margin-bottom:1rem}.config-key-label{color:var(--color-text-muted);font-size:.8125rem;white-space:nowrap}.config-key-value{font-family:SF Mono,Fira Code,monospace;font-size:.8125rem;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:.25rem .5rem;border-radius:var(--radius-sm);flex:1}.btn-danger-outline{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger);padding:.375rem .75rem;font-size:.75rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-danger-outline:hover{background:#ef44441f}.config-actions{display:flex;gap:.75rem;margin-top:.5rem}.mobile-menu-btn{display:none;position:fixed;top:1rem;left:1rem;z-index:200;width:48px;height:48px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all var(--transition-fast)}.mobile-menu-btn:hover{background:var(--color-bg-tertiary)}.hamburger{display:flex;flex-direction:column;gap:5px;width:24px}.hamburger span{display:block;height:2px;background:var(--color-text-primary);border-radius:2px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:99}@media(max-width:768px){.mobile-menu-btn{display:flex}.mobile-overlay{display:block}.sidebar{transform:translate(-100%);transition:transform .3s ease;width:280px}.sidebar.mobile-open{transform:translate(0)}.main-content{margin-left:0;padding:5rem 1rem 2rem}.page-title{font-size:1.5rem}.page-actions{flex-direction:column}.user-info{padding:.75rem}.user-details{max-width:120px}.user-name,.user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:480px){.main-content{padding:5rem .75rem 1.5rem}.card{padding:1rem}.page-title{font-size:1.25rem}}@media(max-width:768px){.drag-item{padding:.75rem;gap:.5rem;flex-wrap:wrap}.drag-handle{font-size:.75rem;padding:.25rem}.drag-item .btn-icon{width:28px!important;height:28px!important;font-size:.875rem;padding:.25rem}.drag-item>div[style*="flex: 1"]{min-width:0;flex:1 1 auto}.drag-item span[style*="fontWeight: 500"]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.drag-item div[style*="fontSize: '0.75rem'"]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}}@media(max-width:480px){.drag-item{padding:.5rem;gap:.375rem}.drag-item .btn-icon{width:24px!important;height:24px!important;font-size:.75rem}.drag-item .btn-icon[title=Dupliquer]{display:none}}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-header .btn-ghost{align-self:flex-start}.page-header .flex.items-center.gap-2{flex-wrap:wrap;width:100%}.page-title{font-size:1.25rem;word-break:break-word}.tabs{flex-wrap:wrap;gap:.5rem}.tab{flex:1;min-width:140px;font-size:.875rem;padding:.5rem}.card-header{flex-direction:column;align-items:flex-start;gap:1rem}.card-header .flex.gap-2{width:100%;flex-wrap:wrap}.card-header .btn{flex:1;min-width:120px}}@media(max-width:480px){.page-header h1{font-size:1.1rem}.tab{font-size:.8rem;min-width:100px}.card-header .btn{font-size:.8rem;padding:.5rem}}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem}@media(max-width:900px){.preview-grid{grid-template-columns:1fr;gap:1rem}}@media(max-width:768px){.preview-grid .card-body{padding:.75rem}.preview-grid .form-checkbox-wrapper{flex-direction:column;align-items:flex-start;gap:.25rem}.preview-grid .form-checkbox-wrapper>span:last-child{align-self:flex-end}.preview-grid [style*="justifyContent: space-between"]{flex-direction:column;gap:.25rem}.preview-grid [style*="justifyContent: space-between"]>div:last-child{align-self:flex-end;font-weight:600}}@media(max-width:768px){.container{padding:20px 16px!important}[style*="gridTemplateColumns: 1fr auto auto"]{grid-template-columns:1fr!important;gap:12px!important}[style*="gridTemplateColumns: 1fr auto auto"]>div:nth-child(2),[style*="gridTemplateColumns: 1fr auto auto"]>div:nth-child(3){text-align:left!important}[style*="display: flex; alignItems: center; gap: 12px"]{flex-wrap:wrap;gap:8px}table[style*="width: 100%"],table[style*="width: 100%"] tbody,table[style*="width: 100%"] tr{display:block}table[style*="width: 100%"] td{display:flex;justify-content:space-between;padding:8px 0!important;border-bottom:1px solid var(--color-border)}table[style*="width: 100%"] td:before{content:attr(data-label);font-weight:500;color:var(--color-text-secondary)}[style*="gridTemplateColumns: repeat(auto-fill, minmax(150px, 1fr))"]{grid-template-columns:repeat(2,1fr)!important}}@media(max-width:480px){.container{padding:16px 12px!important}[style*="display: flex; gap: 8px; marginBottom: 24px"]{flex-direction:column}[style*="display: flex; gap: 8px; marginBottom: 24px"] button{width:100%}[style*="gridTemplateColumns: repeat(auto-fill, minmax(150px, 1fr))"]{grid-template-columns:1fr!important}[style*="display: flex; gap: 8px; flexWrap: wrap"]{flex-direction:column}[style*="display: flex; gap: 8px; flexWrap: wrap"] button{width:100%}}@media(min-width:769px){.devis-actions{display:flex;gap:8px;flex-wrap:wrap}.devis-actions .btn{flex:0 0 auto}.devis-actions .btn-danger{margin-left:auto}}@media(max-width:768px){.devis-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.devis-actions .btn{width:100%;justify-content:center;font-size:.85rem;padding:8px 12px;margin-left:0!important}}@media(max-width:360px){.devis-actions{grid-template-columns:1fr}}@media(max-width:768px){.config-section-header{flex-direction:row;align-items:center;gap:12px;padding:16px}.config-section-icon{font-size:1.75rem;flex-shrink:0}.config-section-title{flex:1}.config-section-title h2{font-size:1.1rem;margin-bottom:2px}.config-section-title p{font-size:.8rem;margin:0}.config-status{font-size:.75rem;padding:4px 8px;flex-shrink:0}.config-section-body{padding:12px 16px 16px}.config-help-text{font-size:.8rem;padding:10px 12px;margin-bottom:12px}.config-card{margin-bottom:12px}.config-card-header{flex-direction:row;align-items:center;gap:10px;padding:12px 16px}.config-card-icon{font-size:1.25rem;flex-shrink:0}.config-card-header h3{font-size:.95rem;margin-bottom:0}.config-card-header p{font-size:.75rem;margin:0}.config-card-body{padding:12px 16px}.config-current-key{flex-direction:row;align-items:center;gap:8px;flex-wrap:nowrap;padding:8px 12px;margin-bottom:12px}.config-key-label{font-size:.75rem;flex-shrink:0}.config-key-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.config-current-key .btn-danger-outline{flex-shrink:0;font-size:.75rem;padding:4px 8px;white-space:nowrap}.config-label{font-size:.85rem;margin-bottom:4px}.config-input-group{flex-direction:row}.config-input-group .form-input{min-width:0;flex:1}.config-actions{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}.config-actions .btn{flex:1;min-width:120px;font-size:.85rem;padding:8px 12px}}@media(max-width:480px){.config-section-header{padding:12px}.config-section-icon{font-size:1.5rem}.config-section-title h2{font-size:1rem}.config-section-body{padding:10px 12px 12px}.config-card-header,.config-card-body{padding:10px 12px}.config-current-key{flex-wrap:wrap}.config-key-value{width:100%;order:3;margin-top:4px}.config-current-key .btn-danger-outline{margin-left:auto}.config-actions{flex-direction:column}.config-actions .btn{width:100%}}html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}body{overflow-x:hidden;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}.main-content{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}@media(max-width:768px){*{-webkit-tap-highlight-color:transparent}.card,.drag-item,.config-section,.config-card{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.page-content,.container{-webkit-overflow-scrolling:touch}}
