*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg: #ffffff;--bg2: #f5f5f7;--bg3: #e8e8ed;--surface: #ffffff;--border: #d2d2d7;--border-light: #e8e8ed;--text: #1d1d1f;--text2: #6e6e73;--text3: #aeaeb2;--accent: #0071e3;--accent-hover: #0077ed;--green: #34c759;--orange: #ff9500;--red: #ff3b30;--purple: #5856d6;--safe-bottom: env(safe-area-inset-bottom, 0px)}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg3);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}.title{font-size:22px;font-weight:600;letter-spacing:-.3px;color:var(--text)}.subtitle{font-size:13px;color:var(--text2);margin-top:2px}.label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}.mono{font-family:SF Mono,JetBrains Mono,monospace}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:12px}.card-hover{transition:box-shadow .2s,border-color .2s;cursor:pointer}.card-hover:hover{border-color:var(--border);box-shadow:0 2px 12px #0000000f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:980px;font-size:13px;font-weight:500;border:none;cursor:pointer;transition:all .15s;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg2);color:var(--text)}.btn-secondary:hover{background:var(--bg3)}.btn-ghost{background:transparent;color:var(--text2);border-radius:8px}.btn-ghost:hover{background:var(--bg2);color:var(--text)}.btn-danger{background:#ff3b301a;color:var(--red)}.btn-danger:hover{background:#ff3b3026}.input{width:100%;padding:10px 14px;background:var(--bg2);border:1px solid transparent;border-radius:10px;font-size:14px;color:var(--text);outline:none;transition:border-color .15s,background .15s;font-family:inherit}.input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #0071e31f}.input::-moz-placeholder{color:var(--text3)}.input::placeholder{color:var(--text3)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23aeaeb2' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:980px;font-size:11px;font-weight:500}.s-presupuesto{background:#f5f5f7;color:#6e6e73}.s-pendiente{background:#ff95001a;color:#c87400}.s-preimpresion{background:#0071e31a;color:#0057b3}.s-impresion{background:#5856d61a;color:#4340b0}.s-taller{background:#ff95001a;color:#c87400}.s-preparado{background:#34c7591a;color:#248a3d}.s-entregado{background:#f5f5f7;color:#aeaeb2}.s-proveedor{background:#ff3b301a;color:#c0392b}.divider{height:1px;background:var(--border-light)}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;font-size:14px;color:var(--text2);text-decoration:none;transition:all .15s;cursor:pointer;border:none;background:transparent;width:100%;text-align:left}.nav-item:hover{background:var(--bg2);color:var(--text)}.nav-item.active{background:var(--bg2);color:var(--text);font-weight:500}.page-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-light);flex-shrink:0;gap:12px;flex-wrap:wrap}.kanban-col{flex-shrink:0;width:260px;display:flex;flex-direction:column;background:var(--bg2);border-radius:14px;overflow:hidden}.kanban-col-header{padding:12px 14px;font-size:12px;font-weight:600;color:var(--text2);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-light);background:var(--surface)}.kanban-cards{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:60px}.fc{--fc-border-color: var(--border-light);--fc-today-bg-color: rgba(0,113,227,.04);--fc-page-bg-color: transparent;font-family:inherit;font-size:13px}.fc-theme-standard td,.fc-theme-standard th{border-color:var(--border-light)!important}.fc .fc-col-header-cell-cushion{color:var(--text3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;text-decoration:none}.fc .fc-daygrid-day-number{color:var(--text2);font-size:13px;text-decoration:none}.fc .fc-day-today .fc-daygrid-day-number{color:var(--accent);font-weight:600}.fc-event{border-radius:6px!important;font-size:11px!important;border:none!important;padding:1px 4px!important}.fc-toolbar-title{color:var(--text)!important;font-size:16px!important;font-weight:600!important;letter-spacing:-.2px!important}.fc .fc-button{background:var(--bg2)!important;border:1px solid var(--border-light)!important;color:var(--text2)!important;font-size:12px!important;border-radius:8px!important;padding:5px 12px!important;box-shadow:none!important}.fc .fc-button:hover{background:var(--bg3)!important;color:var(--text)!important}.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.fc .fc-button:focus{box-shadow:none!important}@media print{.no-print{display:none!important}.print-area{display:block!important}body{background:#fff}.print-page{page-break-after:always;-moz-column-break-after:page;break-after:page}}.print-area{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.animate-fadein{animation:fadeIn .2s ease}.animate-fadeup{animation:fadeUp .25s ease}.spin{animation:spin 1s linear infinite}@media (max-width: 768px){.desktop-only{display:none!important}.page-header{padding:14px 16px}}@media (min-width: 769px){.mobile-only{display:none!important}}
