:root{--font-sans:"Albert Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Albert Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--c-primary:#b0603f;--c-primary-dark:#833e27;--c-primary-light:#c98165;--c-accent:#b8955c;--c-gold:#d9b77e;--c-gold-light:#e8cfa0;--c-dark:#0e211d;--c-mid:#3e5246;--c-muted:#5e6b64;--c-bg:#f9f4ed;--c-surface:#fffdf9;--c-surface-warm:#f4ede3;--c-border:#e6dccd;--c-border-light:#efe7db;--c-success:#2e6b4e;--c-success-bg:#ddebe2;--c-error:#a73f27;--c-error-bg:#f5e2d7;--sh-xs:0 1px 2px #0e211d0d;--sh-sm:0 2px 6px #0e211d0d,0 1px 2px #0e211d0a;--sh-md:0 6px 18px #0e211d14,0 2px 6px #0e211d0d;--sh-lg:0 10px 34px #0e211d1c,0 4px 12px #0e211d0f;--sh-xl:0 18px 50px #0e211d2e,0 8px 20px #0e211d14;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:24px;--ease:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0,0,0.2,1);--t-fast:0.15s;--t-base:0.22s;--t-slow:0.38s}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9f4ed;background:var(--c-bg);color:#0e211d;color:var(--c-dark);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);line-height:1.5}@keyframes gradientDrift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{box-shadow:0 0 0 0 #2e7d5280}70%{box-shadow:0 0 0 9px #2e7d5200}to{box-shadow:0 0 0 0 #2e7d5200}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes barRise{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes tabIndicator{0%{opacity:0;transform:scaleX(.3)}to{opacity:1;transform:scaleX(1)}}@keyframes dotPop{0%{transform:scale(.7)}60%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes drawStroke{to{stroke-dashoffset:0}}@keyframes glowRing{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(2.2)}}@keyframes shakeCard{0%,to{transform:translateX(0)}15%{transform:translateX(-8px) rotate(-1deg)}30%{transform:translateX(8px) rotate(1deg)}45%{transform:translateX(-6px) rotate(-.7deg)}60%{transform:translateX(6px) rotate(.7deg)}75%{transform:translateX(-3px)}90%{transform:translateX(3px)}}@keyframes textBounceIn{0%{opacity:0;transform:translateY(16px) scale(.92)}65%{transform:translateY(-3px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes textSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiShoot{0%{opacity:1;transform:rotate(var(--angle)) translateX(0) scale(1)}80%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateX(var(--dist)) scale(0)}}@keyframes iconBounce{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.18)}80%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.clock-screen{align-items:center;animation:gradientDrift 14s cubic-bezier(.4,0,.2,1) infinite;animation:gradientDrift 14s var(--ease) infinite;background:linear-gradient(150deg,#5a0e0e,#9e2010 20%,#b84a2e 40%,#c97035 60%,#d48818 80%,#b84a2e);background-size:300% 300%;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:24px 16px;position:relative}.clock-screen:before{background:radial-gradient(ellipse at 30% 20%,#ffffff0f 0,#0000 60%),radial-gradient(ellipse at 70% 80%,#0000001f 0,#0000 60%);content:"";inset:0;pointer-events:none;position:absolute}.restaurant-header{animation:fadeSlideDown .6s cubic-bezier(0,0,.2,1) both;animation:fadeSlideDown .6s var(--ease-out) both;filter:drop-shadow(0 6px 18px rgba(0,0,0,.4));margin-bottom:10px;max-width:400px;text-align:center;width:100%}.restaurant-subtitle{color:#f4c430cc;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:4px;margin-top:0;text-transform:uppercase}.live-clock{animation:fadeSlideDown .6s cubic-bezier(0,0,.2,1) .1s both;animation:fadeSlideDown .6s .1s var(--ease-out) both;margin-bottom:20px;text-align:center}.clock-time{font-feature-settings:"tnum";color:#fff8dc;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:clamp(2.2rem,8vw,3.4rem);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-1px;text-shadow:0 2px 12px #0000004d}.clock-date{color:#ffd864e6;font-size:.9rem;font-weight:500;letter-spacing:.3px;margin-top:3px;text-transform:capitalize}.pin-container{animation:fadeSlideUp .55s cubic-bezier(0,0,.2,1) .2s both;animation:fadeSlideUp .55s .2s var(--ease-out) both;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);background:#ffffff1f;border:1px solid #ffffff40;border-radius:24px;border-radius:var(--r-xl);box-shadow:0 8px 32px #00000040,inset 0 1px 0 #fff3;max-width:360px;padding:28px 24px 24px;width:100%}.pin-label{color:#fff8dce6;font-size:.9rem;font-weight:500;letter-spacing:.3px;margin-bottom:18px;text-align:center}.pin-dots{display:flex;gap:16px;justify-content:center;margin-bottom:22px}.pin-dot{background:#0000;border:2px solid #fff8dc99;border-radius:50%;height:17px;transition:all .18s cubic-bezier(.4,0,.2,1);transition:all .18s var(--ease);width:17px}.pin-dot.filled{animation:dotPop .22s cubic-bezier(.4,0,.2,1) both;animation:dotPop .22s var(--ease) both;background:#fff8dc;border-color:#fff8dc;box-shadow:0 0 10px #fff8dc80}.numpad{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.numpad-btn{-webkit-tap-highlight-color:transparent;background:#ffffff29;border:1px solid #fff3;border-radius:12px;border-radius:var(--r-md);color:#fff8dc;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.4rem;font-weight:700;overflow:hidden;padding:17px 10px;position:relative;transition:background .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);transition:background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);-webkit-user-select:none;user-select:none}.numpad-btn:after{background:radial-gradient(circle at center,#ffffff40 0,#0000 65%);content:"";inset:0;opacity:0;position:absolute;transition:opacity .15s;transition:opacity var(--t-fast)}.numpad-btn:hover{background:#ffffff42;box-shadow:0 4px 12px #0003;transform:translateY(-1px)}.numpad-btn:hover:after{opacity:1}.numpad-btn:active{background:#ffffff1a;box-shadow:none;transform:scale(.93)}.numpad-btn.btn-clear{background:#c8321e66;font-size:.82rem;font-weight:700;letter-spacing:.5px}.numpad-btn.btn-clear:hover{background:#c8321e8c}.numpad-btn.btn-submit{background:#1e8c508c;font-size:.82rem;font-weight:700;letter-spacing:.5px}.numpad-btn.btn-submit:hover{background:#1e8c50b8}.numpad-btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.35;transform:none!important}.action-choose{align-items:center;display:flex;flex-direction:column;width:100%}.action-choose__label{color:#fff8dcd9;font-size:.88rem;font-weight:500;letter-spacing:.3px;margin-bottom:18px;text-align:center}.action-btns{flex-direction:column;gap:12px;width:100%}.action-btn{align-items:center;border:none;border-radius:12px;border-radius:var(--r-md);cursor:pointer;display:flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.15rem;font-weight:800;gap:12px;justify-content:center;letter-spacing:.2px;padding:18px 20px;transition:filter .15s,transform .15s;transition:filter var(--t-fast),transform var(--t-fast);width:100%}.action-btn svg{flex-shrink:0;height:26px;width:26px}.action-btn--entrada{background:#2e7d52d9;box-shadow:0 4px 16px #2e7d5266;color:#d5f5e3}.action-btn--salida{background:#b45309cc;box-shadow:0 4px 16px #b4530959;color:#fef3c7}.action-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.action-btn:active{filter:brightness(.95);transform:scale(.97)}.action-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.action-back{background:none;border:none;color:#fff8dc80;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;margin-top:18px;text-decoration:underline;text-underline-offset:3px;transition:color .22s;transition:color var(--t-base)}.action-back:hover{color:#fff8dcd9}.action-result{align-items:center;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:16px 0 8px;text-align:center}.action-result__name{color:#fff8dc;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.5rem;font-weight:800}.action-result__status{font-size:1rem;font-weight:600}.action-result--entrada .action-result__status{color:#86efac}.action-result--salida .action-result__status{color:#fcd34d}.action-result--error .action-result__status{color:#fca5a5}.action-result__hora{color:#fff8dc99;font-size:.88rem;margin-top:4px}.admin-btn{background:#ffffff21;border:1px solid #ffffff47;border-radius:30px;bottom:20px;color:#fff8dcd9;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.78rem;font-weight:600;letter-spacing:.3px;padding:7px 15px;position:absolute;right:20px;transition:background .22s,color .22s;transition:background var(--t-base),color var(--t-base)}.admin-btn:hover{background:#ffffff40;color:#fff8dc}.admin-login-screen{align-items:center;animation:gradientDrift 14s cubic-bezier(.4,0,.2,1) infinite;animation:gradientDrift 14s var(--ease) infinite;background:linear-gradient(150deg,#5a0e0e,#9e2010 40%,#c97035);background-size:300% 300%;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{animation:popIn .3s cubic-bezier(0,0,.2,1) both;animation:popIn .3s var(--ease-out) both;background:#fffdf9;background:var(--c-surface);border-radius:24px;border-radius:var(--r-xl);box-shadow:0 18px 50px #0e211d2e,0 8px 20px #0e211d14;box-shadow:var(--sh-xl);max-width:380px;padding:44px 40px;width:100%}.login-card h2{color:#0e211d;color:var(--c-dark);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-serif);font-size:1.6rem;font-weight:700;margin-bottom:6px;text-align:center}.login-card>p{color:#5e6b64;color:var(--c-muted);font-size:.88rem;margin-bottom:28px;text-align:center}.login-btn{background:linear-gradient(135deg,#b0603f,#833e27);background:linear-gradient(135deg,var(--c-primary) 0,var(--c-primary-dark) 100%);border:none;border-radius:12px;border-radius:var(--r-md);box-shadow:0 4px 14px #b84a2e66;color:#fff;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.98rem;font-weight:700;margin-top:12px;padding:13px;transition:filter .22s,transform .15s;transition:filter var(--t-base),transform var(--t-fast);width:100%}.login-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.login-btn:active{transform:scale(.98)}.back-link{color:#5e6b64;color:var(--c-muted);cursor:pointer;display:block;font-size:.85rem;margin-top:18px;text-align:center;text-decoration:underline;text-underline-offset:3px;transition:color .22s;transition:color var(--t-base)}.back-link:hover{color:#0e211d;color:var(--c-dark)}.admin-panel{background:var(--c-bg);min-height:100vh;overflow-x:hidden}.safe-area-top{background:#2d1a0e;height:env(safe-area-inset-top);z-index:51}.admin-header,.safe-area-top{position:-webkit-sticky;position:sticky;top:0}.admin-header{align-items:center;background:linear-gradient(135deg,#2d1a0e,#5c2810 60%,#8b2810);box-shadow:0 2px 16px #2d1a0e4d;color:#fff;display:flex;justify-content:space-between;padding:16px 28px;z-index:50}.admin-header h1{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.2rem;font-weight:800;letter-spacing:-.3px}.admin-header p{font-size:.75rem;font-weight:400;margin-top:2px;opacity:.65}.logout-btn{background:#ffffff1f;border:1px solid #ffffff4d;border-radius:30px;color:#ffffffe6;cursor:pointer;font-family:var(--font-sans);font-size:.82rem;font-weight:600;padding:8px 18px;transition:background .22s;transition:background var(--t-base);white-space:nowrap}.logout-btn:hover{background:#ffffff38}.admin-tabs{-webkit-overflow-scrolling:touch;background:#fffdf9;background:var(--c-surface);border-bottom:2px solid #e6dccd;border-bottom:2px solid var(--c-border);display:flex;overflow-x:auto;padding:0 24px;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-bottom:3px solid #0000;color:#5e6b64;color:var(--c-muted);cursor:pointer;font-family:var(--font-sans);margin-bottom:-2px;padding:14px 18px;position:relative;transition:color .22s;transition:color var(--t-base);white-space:nowrap}.tab-btn.active,.tab-btn:hover{color:#b0603f;color:var(--c-primary)}.tab-btn.active{border-bottom-color:#b0603f;border-bottom-color:var(--c-primary);font-weight:700}.tab-btn.active:after{animation:tabIndicator .22s cubic-bezier(0,0,.2,1) both;animation:tabIndicator .22s var(--ease-out) both;background:#b0603f;background:var(--c-primary);border-radius:3px 3px 0 0;bottom:-2px;content:"";height:3px;left:0;position:absolute;right:0}.admin-content{animation:fadeSlideUp .3s cubic-bezier(0,0,.2,1) both;animation:fadeSlideUp .3s var(--ease-out) both;margin:0 auto;max-width:1140px;padding:28px}.section-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:20px}.section-title{color:#0e211d;color:var(--c-dark);font-size:1.2rem}.add-btn,.section-title{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-weight:700}.add-btn{background:linear-gradient(135deg,#b0603f,#833e27);background:linear-gradient(135deg,var(--c-primary) 0,var(--c-primary-dark) 100%);border:none;border-radius:30px;box-shadow:0 3px 10px #b84a2e59;color:#fff;cursor:pointer;font-size:.88rem;padding:9px 20px;transition:filter .22s,transform .15s;transition:filter var(--t-base),transform var(--t-fast)}.add-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.add-btn:active{transform:scale(.97)}.export-btn{background:linear-gradient(135deg,#2e7d52,#1e5c3a);border:none;border-radius:30px;box-shadow:0 3px 10px #2e7d5259;color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:.88rem;font-weight:700;padding:9px 20px;transition:filter .22s,transform .15s;transition:filter var(--t-base),transform var(--t-fast)}.export-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.export-btn:active{transform:scale(.97)}.cancel-btn{background:#e6dccd;background:var(--c-border);border:none;border-radius:30px;color:#3e5246;color:var(--c-mid);cursor:pointer;font-family:var(--font-sans);font-size:.9rem;font-weight:600;padding:10px 22px;transition:background .22s;transition:background var(--t-base)}.cancel-btn:hover{background:#efe7db;background:var(--c-border-light);filter:brightness(.95)}.save-btn{background:linear-gradient(135deg,#b0603f,#833e27);background:linear-gradient(135deg,var(--c-primary) 0,var(--c-primary-dark) 100%);border:none;border-radius:30px;box-shadow:0 3px 10px #b84a2e59;color:#fff;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.9rem;font-weight:700;padding:10px 22px;transition:filter .22s,transform .15s;transition:filter var(--t-base),transform var(--t-fast)}.save-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.save-btn:active{transform:scale(.97)}.save-btn:disabled{cursor:not-allowed;opacity:.5}.edit-btn{background:#ebf4fb;border:1px solid #bee0f5;border-radius:20px;color:#2471a3;cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;font-weight:600;padding:6px 14px;transition:background .15s,transform .15s;transition:background var(--t-fast),transform var(--t-fast)}.edit-btn:hover{background:#d5ebfc;transform:translateY(-1px)}.delete-btn{background:#fdecea;border:1px solid #f5c8c0;border-radius:20px;color:#b0603f;color:var(--c-primary);cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;font-weight:600;padding:6px 14px;transition:background .15s,transform .15s;transition:background var(--t-fast),transform var(--t-fast)}.delete-btn:hover{background:#fad4ce;transform:translateY(-1px)}.action-btns{display:flex;gap:6px}.data-table{background:#fffdf9;background:var(--c-surface);border:1px solid #e6dccd;border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:0 2px 6px #0e211d0d,0 1px 2px #0e211d0a;box-shadow:var(--sh-sm);overflow:hidden}.data-table table{border-collapse:collapse;width:100%}.data-table th{background:linear-gradient(135deg,#3d1a0e,#6b2a10);color:#fff8dcf2;font-family:var(--font-sans);font-size:.8rem;font-weight:700;letter-spacing:.4px;padding:13px 18px;text-align:left;text-transform:uppercase}.data-table td{border-bottom:1px solid #efe7db;border-bottom:1px solid var(--c-border-light);color:var(--c-dark);font-size:.9rem;padding:12px 18px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .15s;transition:background var(--t-fast)}.data-table tbody tr:nth-child(2n) td{background:#fdfaf5}.data-table tbody tr:hover td{background:#f4ede3;background:var(--c-surface-warm)}.form-group{margin-bottom:16px}.form-group label{color:#3e5246;color:var(--c-mid);display:block;font-size:.8rem;font-weight:700;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.form-group input,.form-group label,.form-group select{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans)}.form-group input,.form-group select{background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:8px;border-radius:var(--r-sm);color:#0e211d;color:var(--c-dark);font-size:.95rem;outline:none;padding:10px 14px;transition:border-color .22s,box-shadow .22s;transition:border-color var(--t-base),box-shadow var(--t-base);width:100%}.form-group input:focus,.form-group select:focus{border-color:#b0603f;border-color:var(--c-primary);box-shadow:0 0 0 3px #b84a2e1f}.pin-badge{background:linear-gradient(135deg,#d4682a,#b84a2e);box-shadow:0 1px 2px #0e211d0d;box-shadow:var(--sh-xs);color:#fff;font-family:monospace;font-size:.82rem;letter-spacing:4px;padding:3px 12px}.pin-badge,.type-badge{border-radius:20px;font-weight:700}.type-badge{align-items:center;display:inline-flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.76rem;gap:4px;letter-spacing:.4px;padding:4px 12px;text-transform:uppercase}.type-badge.entrada{background:#ddebe2;background:var(--c-success-bg);color:#2e6b4e;color:var(--c-success)}.type-badge.salida{background:#fdebd0;color:#a04000}.filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:20px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{color:#3e5246;color:var(--c-mid);font-size:.78rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.filter-group input[type=date],.filter-group label,.filter-group select{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans)}.filter-group input[type=date],.filter-group select{background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:8px;border-radius:var(--r-sm);color:#0e211d;color:var(--c-dark);font-size:.88rem;outline:none;padding:9px 13px;transition:border-color .22s,box-shadow .22s;transition:border-color var(--t-base),box-shadow var(--t-base)}.filter-group input[type=date]:focus,.filter-group select:focus{border-color:#b0603f;border-color:var(--c-primary);box-shadow:0 0 0 3px #b84a2e1f}.modal-overlay{align-items:center;animation:fadeIn .18s cubic-bezier(.4,0,.2,1) both;animation:fadeIn .18s var(--ease) both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#140a058c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:200}.modal{animation:popIn .24s cubic-bezier(0,0,.2,1) both;animation:popIn .24s var(--ease-out) both;background:var(--c-surface);border:1px solid #efe7db;border:1px solid var(--c-border-light);border-radius:24px;border-radius:var(--r-xl);box-shadow:0 18px 50px #0e211d2e,0 8px 20px #0e211d14;box-shadow:var(--sh-xl);max-width:420px;padding:32px;width:100%}.modal h2{color:var(--c-dark);font-family:var(--font-sans);font-size:1.2rem;font-weight:800;margin-bottom:22px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.modal-actions .delete-btn--ghost{margin-right:auto}.delete-confirm{background:#fdecea;border:1px solid #f5c8c0;border-radius:12px;margin-top:20px;padding:14px 16px}.delete-confirm p{color:#b0603f;color:var(--c-primary);font-size:.9rem;font-weight:600;margin:0}.delete-confirm .modal-actions{margin-top:14px}.hours-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));margin-bottom:26px}.hours-card{animation:fadeSlideUp .35s cubic-bezier(0,0,.2,1) both;animation:fadeSlideUp .35s var(--ease-out) both;background:#fffdf9;background:var(--c-surface);border:1px solid #e6dccd;border-left:4px solid #b0603f;border:1px solid var(--c-border);border-left:4px solid var(--c-primary);border-radius:var(--r-lg);box-shadow:0 2px 6px #0e211d0d,0 1px 2px #0e211d0a;box-shadow:var(--sh-sm);padding:20px 22px;transition:transform .22s,box-shadow .22s;transition:transform var(--t-base),box-shadow var(--t-base)}.hours-card:hover{box-shadow:0 6px 18px #0e211d14,0 2px 6px #0e211d0d;box-shadow:var(--sh-md);transform:translateY(-2px)}.hours-card .worker-name{color:#3e5246;color:var(--c-mid);font-size:.9rem;font-weight:700;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hours-card .hours-display{color:#b0603f;color:var(--c-primary);font-family:var(--font-sans);font-size:1.9rem;font-weight:800;letter-spacing:-1px}.hours-card .hours-label{color:#5e6b64;color:var(--c-muted);font-size:.75rem;font-weight:500;margin-top:3px}.export-btn--card{font-size:.78rem;margin-top:12px;padding:8px 12px;width:100%}.total-banner{align-items:center;background:linear-gradient(135deg,#2d1a0e,#5c2810);border-radius:12px;border-radius:var(--r-md);box-shadow:0 6px 18px #0e211d14,0 2px 6px #0e211d0d;box-shadow:var(--sh-md);color:#fff;display:flex;justify-content:space-between;margin-bottom:22px;padding:16px 22px}.total-banner span:first-child{font-size:.88rem;font-weight:600;opacity:.85}.total-banner span:last-child{color:#e8cfa0;color:var(--c-gold-light);font-family:var(--font-sans);font-size:1.45rem;font-weight:800}.feedback-icon-wrap{align-items:center;display:flex;height:72px;justify-content:center;margin:0 auto 16px;position:relative;width:72px}.feedback-svg{animation:iconBounce .45s cubic-bezier(0,0,.2,1) both;animation:iconBounce .45s var(--ease-out) both;display:block;height:72px;width:72px}.feedback-path{animation:drawStroke .45s cubic-bezier(0,0,.2,1) .3s forwards;animation:drawStroke .45s .3s var(--ease-out) forwards}.feedback-glow{animation:glowRing .7s cubic-bezier(0,0,.2,1) .1s forwards;animation:glowRing .7s .1s var(--ease-out) forwards;border-radius:50%;inset:0;position:absolute}.feedback-glow--entrada{background:#2e7d5266}.feedback-glow--salida{background:#b4530959}.feedback-glow--error{background:#b84a2e66}.confetti-burst{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute}.confetti-particle{animation:confettiShoot .65s cubic-bezier(0,0,.2,1) 0s forwards;animation:confettiShoot .65s var(--delay,0s) var(--ease-out) forwards;background:var(--color);border-radius:2px;height:var(--size);position:absolute;width:var(--size)}.feedback-card--error{animation:popIn .25s cubic-bezier(0,0,.2,1) both,shakeCard .45s cubic-bezier(.4,0,.2,1) .25s both;animation:popIn .25s var(--ease-out) both,shakeCard .45s .25s var(--ease) both}.feedback-anim-name{animation:textBounceIn .42s cubic-bezier(0,0,.2,1) .35s both;animation:textBounceIn .42s .35s var(--ease-out) both}.feedback-anim-type{animation:textSlideIn .32s cubic-bezier(0,0,.2,1) .52s both;animation:textSlideIn .32s .52s var(--ease-out) both;animation-fill-mode:both;opacity:0}.feedback-anim-time{animation:textSlideIn .32s cubic-bezier(0,0,.2,1) .66s both;animation:textSlideIn .32s .66s var(--ease-out) both;animation-fill-mode:both;opacity:0}.feedback-type--entrada{color:#2e6b4e;color:var(--c-success);font-weight:600}.feedback-type--salida{color:#b45309;font-weight:600}.empty-icon{background:#3e5246;background:var(--c-mid);border-radius:16px;height:56px;margin:0 auto 16px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:60%;mask-size:60%;opacity:.25;width:56px}.empty-icon--person{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E")}.empty-icon--list{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='2' rx='1'/%3E%3Crect x='3' y='11' width='18' height='2' rx='1'/%3E%3Crect x='3' y='17' width='18' height='2' rx='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='2' rx='1'/%3E%3Crect x='3' y='11' width='18' height='2' rx='1'/%3E%3Crect x='3' y='17' width='18' height='2' rx='1'/%3E%3C/svg%3E")}.empty-icon--clock{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M12 7v5l3 3' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M12 7v5l3 3' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");-webkit-mask-size:70%;mask-size:70%}.empty-icon--chart{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='12' width='4' height='9' rx='1'/%3E%3Crect x='10' y='7' width='4' height='14' rx='1'/%3E%3Crect x='17' y='3' width='4' height='18' rx='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='12' width='4' height='9' rx='1'/%3E%3Crect x='10' y='7' width='4' height='14' rx='1'/%3E%3Crect x='17' y='3' width='4' height='18' rx='1'/%3E%3C/svg%3E")}.modal--wide{max-width:560px}.modal-tabs{border-bottom:2px solid #e6dccd;border-bottom:2px solid var(--c-border);display:flex;gap:4px;margin-bottom:20px;padding-bottom:0}.modal-tab{background:none;border:none;border-bottom:2px solid #0000;color:#5e6b64;color:var(--c-muted);cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.88rem;font-weight:600;margin-bottom:-2px;padding:8px 20px;transition:color .22s;transition:color var(--t-base)}.modal-tab--active,.modal-tab:hover{color:#b0603f;color:var(--c-primary)}.modal-tab--active{border-bottom-color:#b0603f;border-bottom-color:var(--c-primary)}.schedule-hint{color:#5e6b64;color:var(--c-muted);font-size:.8rem;line-height:1.5;margin-bottom:14px}.schedule-grid,.schedule-list{display:flex;flex-direction:column;gap:6px}.schedule-row{background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:8px;border-radius:var(--r-sm);display:flex;flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .22s,background .22s;transition:border-color var(--t-base),background var(--t-base)}.schedule-row__head{align-items:center;display:flex;justify-content:space-between}.schedule-row--active{background:#f4ede3;background:var(--c-surface-warm);border-color:#b0603f;border-color:var(--c-primary)}.schedule-day{color:#0e211d;color:var(--c-dark);font-size:.88rem;font-weight:600}.schedule-toggle{align-items:center;cursor:pointer;display:inline-flex;height:22px;position:relative;width:40px}.schedule-toggle input{height:0;opacity:0;position:absolute;width:0}.schedule-toggle__track{background:#e6dccd;background:var(--c-border);border-radius:11px;inset:0;position:absolute;transition:background .22s;transition:background var(--t-base)}.schedule-toggle__track:after{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0e211d0d;box-shadow:var(--sh-xs);content:"";height:16px;left:3px;position:absolute;top:3px;transition:transform .22s;transition:transform var(--t-base);width:16px}.schedule-toggle input:checked+.schedule-toggle__track{background:#b0603f;background:var(--c-primary)}.schedule-toggle input:checked+.schedule-toggle__track:after{transform:translateX(18px)}.schedule-time{background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:8px;border-radius:var(--r-sm);color:#0e211d;color:var(--c-dark);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.88rem;outline:none;padding:6px 8px;transition:border-color .22s,box-shadow .22s;transition:border-color var(--t-base),box-shadow var(--t-base);width:100%}.schedule-time:focus{border-color:#b0603f;border-color:var(--c-primary);box-shadow:0 0 0 3px #b84a2e1f}.schedule-time:disabled{background:#efe7db;background:var(--c-border-light);cursor:not-allowed;opacity:.35}.schedule-slots{display:flex;flex-direction:column;gap:6px;padding-top:2px}.schedule-slot{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.slot-label{color:#b0603f;color:var(--c-primary);font-size:.72rem;font-weight:600;letter-spacing:.04em;min-width:58px;text-transform:uppercase}.schedule-slot-sep,.slot-sep{color:#5e6b64;color:var(--c-muted);flex-shrink:0;font-size:.85rem}.schedule-rest{color:#5e6b64;color:var(--c-muted);font-size:.82rem;font-style:italic;padding-top:4px}.add-slot-btn,.slot-add{align-self:flex-start;background:#0000;border:1.5px dashed #b0603f;border:1.5px dashed var(--c-primary);border-radius:8px;border-radius:var(--r-sm);color:#b0603f;color:var(--c-primary);cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.75rem;padding:3px 9px;transition:background .22s,color .22s;transition:background var(--t-base),color var(--t-base)}.add-slot-btn:hover,.slot-add:hover{background:#b0603f;background:var(--c-primary);color:#fff}.remove-slot-btn,.slot-remove{background:#0000;border:none;color:#5e6b64;color:var(--c-muted);cursor:pointer;flex-shrink:0;font-size:.8rem;line-height:1;padding:0 3px;transition:color .22s;transition:color var(--t-base)}.remove-slot-btn:hover,.slot-remove:hover{color:#b84a2e}.overtime-badge{border-radius:20px;color:#92400e;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;padding:3px 10px}.hours-overtime,.overtime-badge{background:#fef3c7;font-weight:700}.hours-overtime{border-radius:10px;color:#b45309;display:inline-block;font-size:.75rem;margin-top:4px;padding:2px 8px}.hours-banners{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.hours-banners .total-banner{flex:1 1;margin-bottom:0}.total-banner--overtime{background:linear-gradient(135deg,#92400e,#b45309)}.error-message{animation:fadeSlideDown .2s cubic-bezier(0,0,.2,1) both;animation:fadeSlideDown .2s var(--ease-out) both;background:#f5e2d7;background:var(--c-error-bg);border-left:3px solid #a73f27;border-left:3px solid var(--c-error);border-radius:8px;border-radius:var(--r-sm);color:#a73f27;color:var(--c-error);font-size:.83rem;font-weight:500;margin-top:10px;padding:9px 13px}.loading{font-size:.9rem;font-weight:500;padding:52px 20px}.empty-state,.loading{color:#5e6b64;color:var(--c-muted);text-align:center}.empty-state{padding:60px 20px}.empty-state p{font-size:.92rem;line-height:1.6}.live-summary{align-items:center;animation:fadeSlideDown .3s cubic-bezier(0,0,.2,1) both;animation:fadeSlideDown .3s var(--ease-out) both;background:#fffdf9;background:var(--c-surface);border:1px solid #e6dccd;border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:0 2px 6px #0e211d0d,0 1px 2px #0e211d0a;box-shadow:var(--sh-sm);display:flex;flex-wrap:wrap;gap:20px;margin-bottom:26px;padding:22px 26px}.live-summary__count{align-items:center;display:flex;flex-direction:column;min-width:82px}.live-summary__number{font-family:var(--font-sans);font-size:2.6rem;font-weight:800;letter-spacing:-1px;line-height:1}.live-summary__count--in .live-summary__number{color:#2e6b4e;color:var(--c-success)}.live-summary__count--out .live-summary__number{color:#5e6b64;color:var(--c-muted)}.live-summary__count:not(.live-summary__count--in):not(.live-summary__count--out) .live-summary__number{color:#0e211d;color:var(--c-dark)}.live-summary__label{color:#5e6b64;color:var(--c-muted);font-size:.72rem;font-weight:700;letter-spacing:.5px;margin-top:4px;text-align:center;text-transform:uppercase}.live-summary__divider{background:#e6dccd;background:var(--c-border);flex-shrink:0;height:44px;width:1px}.live-refresh{align-items:flex-end;display:flex;flex-direction:column;gap:5px;margin-left:auto}.live-refresh__btn{align-items:center;background:#f4ede3;background:var(--c-surface-warm);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:50%;box-shadow:0 1px 2px #0e211d0d;box-shadow:var(--sh-xs);color:#b0603f;color:var(--c-primary);cursor:pointer;display:flex;font-size:1.15rem;height:38px;justify-content:center;transition:background .22s,transform .38s;transition:background var(--t-base),transform var(--t-slow);width:38px}.live-refresh__btn:hover{background:#e6dccd;background:var(--c-border);transform:rotate(180deg)}.live-refresh__time{color:#5e6b64;color:var(--c-muted);font-size:.7rem;font-weight:500}.live-section{margin-bottom:26px}.live-section__title{align-items:center;display:flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.75rem;font-weight:800;gap:8px;letter-spacing:1.2px;margin-bottom:12px;text-transform:uppercase}.live-section__title--in{color:#2e6b4e;color:var(--c-success)}.live-section__title--out{color:#5e6b64;color:var(--c-muted)}.live-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}.live-card{align-items:center;animation:fadeSlideUp .35s cubic-bezier(0,0,.2,1) both;animation:fadeSlideUp .35s var(--ease-out) both;background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:var(--r-lg);box-shadow:0 1px 2px #0e211d0d;box-shadow:var(--sh-xs);display:flex;gap:14px;padding:16px 18px;transition:transform .22s,box-shadow .22s;transition:transform var(--t-base),box-shadow var(--t-base)}.live-card:hover{box-shadow:0 6px 18px #0e211d14,0 2px 6px #0e211d0d;box-shadow:var(--sh-md);transform:translateY(-2px)}.live-card--in{border-left-color:#2e6b4e;border-left-color:var(--c-success)}.live-card--out{border-left-color:#e6dccd;border-left-color:var(--c-border)}.live-card__avatar{align-items:center;border-radius:50%;box-shadow:0 1px 2px #0e211d0d;box-shadow:var(--sh-xs);color:#fff;display:flex;flex-shrink:0;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.25rem;font-weight:800;height:46px;justify-content:center;width:46px}.live-card--in .live-card__avatar{background:linear-gradient(135deg,#2e7d52,#1a5c35)}.live-card--out .live-card__avatar{background:linear-gradient(135deg,#c0a890,#a08870)}.live-card__info{flex:1 1;min-width:0}.live-card__name{color:var(--c-dark);font-family:var(--font-sans);font-size:.95rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-card__status{align-items:center;display:flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;font-weight:700;gap:6px;margin-top:3px}.live-card__status--in{color:#2e6b4e;color:var(--c-success)}.live-card__status--out,.live-card__time{color:#5e6b64;color:var(--c-muted)}.live-card__time{font-size:.76rem;font-weight:500;margin-top:2px}.live-card__time strong{color:#0e211d;color:var(--c-dark);font-weight:700}.live-card__close{background:#f4ede3;background:var(--c-surface-warm);border:1px solid #e6dccd;border:1px solid var(--c-border);border-radius:20px;color:var(--c-primary-dark);cursor:pointer;font-family:var(--font-sans);font-size:.76rem;font-weight:700;margin-top:8px;padding:5px 12px;transition:background .15s,border-color .15s;transition:background var(--t-fast),border-color var(--t-fast)}.live-card__close:hover{background:#f5e2d7;background:var(--c-error-bg);border-color:#c98165;border-color:var(--c-primary-light)}.live-card__close:focus-visible{outline:2px solid #b0603f;outline:2px solid var(--c-primary);outline-offset:2px}.close-shift__who{color:#3e5246;color:var(--c-mid);font-size:.9rem;margin:-12px 0 4px}.close-shift__who strong{color:#0e211d;color:var(--c-dark)}.close-shift__hint{color:#5e6b64;color:var(--c-muted);font-size:.8rem;margin:0 0 18px}.close-shift__duration{color:#3e5246;color:var(--c-mid);font-size:.88rem;margin:-4px 0 0}.close-shift__duration strong{color:#0e211d;color:var(--c-dark)}.pulse-dot{animation:pulse 2s infinite;background:#2e6b4e;background:var(--c-success)}.dot-off,.pulse-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:9px;width:9px}.dot-off{background:#e6dccd;background:var(--c-border)}.chart-wrapper{animation:fadeSlideUp .35s cubic-bezier(0,0,.2,1) both;animation:fadeSlideUp .35s var(--ease-out) both;background:#fffdf9;background:var(--c-surface);border:1px solid #e6dccd;border:1px solid var(--c-border);border-radius:24px;border-radius:var(--r-xl);box-shadow:0 6px 18px #0e211d14,0 2px 6px #0e211d0d;box-shadow:var(--sh-md);padding:28px 26px 22px}.chart-header{margin-bottom:20px}.chart-title{color:#0e211d;color:var(--c-dark);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1.1rem;font-weight:800}.chart-subtitle{color:#5e6b64;color:var(--c-muted);font-size:.8rem;font-weight:500;margin-top:3px}.chart-bar{animation:barRise .55s cubic-bezier(0,0,.2,1) backwards;animation:barRise .55s var(--ease-out) backwards;transform-box:fill-box;transform-origin:50% 100%}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;padding:0 4px}.chart-legend-item{align-items:center;color:#3e5246;color:var(--c-mid);display:flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.82rem;font-weight:500;gap:7px}.chart-legend-dot{border-radius:3px;display:inline-block;flex-shrink:0;height:11px;width:11px}.chart-summary{margin-top:24px}.install-banner{align-items:center;animation:fadeSlideUp .4s cubic-bezier(0,0,.2,1) both;animation:fadeSlideUp .4s var(--ease-out) both;background:linear-gradient(135deg,#2d1a0e,#5c2810);border:1px solid #fff8dc26;border-radius:18px;border-radius:var(--r-lg);bottom:20px;box-shadow:0 18px 50px #0e211d2e,0 8px 20px #0e211d14;box-shadow:var(--sh-xl);color:#fff8dc;display:flex;gap:12px;left:50%;max-width:460px;padding:14px 16px;position:fixed;transform:translateX(-50%);width:calc(100% - 32px);z-index:999}.install-banner--hiding{animation:fadeSlideDown .35s cubic-bezier(.4,0,.2,1) both;animation:fadeSlideDown .35s var(--ease) both;opacity:0;transform:translateX(-50%) translateY(20px)}.install-banner__icon{align-items:center;background:#ffffff1a;border-radius:8px;border-radius:var(--r-sm);display:flex;flex-shrink:0;height:44px;justify-content:center;padding:6px;width:44px}.install-banner__icon svg{height:100%;width:100%}.install-banner__text{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.install-banner__text strong{color:#fff8dc;font-size:.9rem;font-weight:700}.install-banner__text span,.install-banner__text strong{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans)}.install-banner__text span{align-items:center;color:#fff8dcb3;display:flex;flex-wrap:wrap;font-size:.78rem;gap:4px}.install-banner__share{color:#fff8dce6;display:inline-block;flex-shrink:0;height:16px;vertical-align:middle;width:16px}.install-banner__btn{background:linear-gradient(135deg,#d9b77e,#b8955c);background:linear-gradient(135deg,var(--c-gold) 0,var(--c-accent) 100%);border:none;border-radius:30px;box-shadow:0 3px 10px #0000004d;color:#2d1a0e;cursor:pointer;flex-shrink:0;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.85rem;font-weight:800;padding:9px 18px;transition:filter .15s,transform .15s;transition:filter var(--t-fast),transform var(--t-fast);white-space:nowrap}.install-banner__btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.install-banner__btn:active{transform:scale(.96)}.install-banner__close{align-items:center;background:none;border:none;border-radius:50%;color:#fff8dc80;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:6px;transition:color .15s,background .15s;transition:color var(--t-fast),background var(--t-fast)}.install-banner__close svg{height:16px;width:16px}.install-banner__close:hover{background:#ffffff1a;color:#fff8dce6}.clock-screen{justify-content:space-evenly;min-height:100dvh;min-height:100vh;padding:20px 14px 14px}.restaurant-header{margin-bottom:0;max-width:260px}.restaurant-subtitle{font-size:.65rem;letter-spacing:3px}.live-clock{margin-bottom:10px}.clock-time{font-size:2rem;letter-spacing:-.5px}.clock-date{font-size:.8rem;margin-top:2px}.pin-container{border-radius:18px;border-radius:var(--r-lg);max-width:100%;padding:20px 14px 18px}.pin-label{font-size:.82rem;margin-bottom:14px}.pin-dots{gap:14px;margin-bottom:16px}.pin-dot{height:15px;width:15px}.numpad{gap:9px}.numpad-btn{align-items:center;border-radius:8px;border-radius:var(--r-sm);display:flex;font-size:1.5rem;justify-content:center;min-height:62px;padding:0}.numpad-btn.btn-clear,.numpad-btn.btn-submit{font-size:.88rem;letter-spacing:.3px}.admin-btn{bottom:12px;font-size:.72rem;padding:6px 12px;right:12px}.feedback-card{padding:36px 28px 28px}.feedback-icon-wrap,.feedback-svg{height:62px;width:62px}@media (max-width:380px){.restaurant-header{max-width:220px}.clock-time{font-size:1.75rem}.numpad-btn{font-size:1.35rem;min-height:56px}.pin-container{padding:16px 12px 14px}}@media (min-width:600px){.clock-screen{gap:0;justify-content:center;padding:32px 24px 20px}.restaurant-header{margin-bottom:12px;max-width:360px}.restaurant-subtitle{font-size:.72rem;letter-spacing:4px}.live-clock{margin-bottom:18px}.clock-time{font-size:2.8rem;letter-spacing:-1px}.clock-date{font-size:.9rem;margin-top:4px}.pin-container{max-width:400px;padding:26px 24px 22px}.pin-label{font-size:.9rem;margin-bottom:18px}.pin-dots{gap:16px;margin-bottom:20px}.pin-dot{height:17px;width:17px}.numpad{gap:11px}.numpad-btn{border-radius:12px;border-radius:var(--r-md);font-size:1.65rem;min-height:74px}.numpad-btn.btn-clear,.numpad-btn.btn-submit{font-size:1rem}.admin-btn{bottom:18px;font-size:.78rem;padding:7px 15px;right:18px}}@media (min-width:900px){.restaurant-header{margin-bottom:16px;max-width:400px}.restaurant-subtitle{font-size:.75rem}.clock-time{font-size:3.4rem}.clock-date{font-size:.95rem}.pin-container{max-width:420px;padding:30px 26px 24px}.pin-dots{gap:18px;margin-bottom:24px}.pin-dot{height:18px;width:18px}.numpad{gap:12px}.numpad-btn{font-size:1.75rem;min-height:82px}.numpad-btn.btn-clear,.numpad-btn.btn-submit{font-size:1.05rem}}@media (max-width:639px){.data-table--cards thead{display:none}.data-table--cards table,.data-table--cards tbody{display:block;width:100%}.data-table--cards tr{border-bottom:1px solid #efe7db;border-bottom:1px solid var(--c-border-light);display:block;padding:12px 16px}.data-table--cards tr:last-child{border-bottom:none}.data-table--cards tr:nth-child(2n){background:#fdfaf5}.data-table--cards tr:hover{background:#f4ede3;background:var(--c-surface-warm)}.data-table--cards td{align-items:center;border:none;color:#0e211d;color:var(--c-dark);display:flex;font-size:.9rem;gap:10px;padding:5px 0}.data-table--cards td:empty{display:none}.data-table--cards td:before{color:#5e6b64;color:var(--c-muted);content:attr(data-label);display:inline-block;flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.5px;min-width:72px;text-transform:uppercase}.data-table--cards .action-btns{flex-wrap:wrap}.chart-summary .data-table{overflow:auto}.chart-summary .data-table table{min-width:520px}.admin-header{flex-wrap:wrap;gap:8px;padding:12px 16px}.admin-header h1{font-size:1rem}.logout-btn{font-size:.78rem;padding:6px 14px}.admin-tabs{padding:0 12px}.tab-btn{font-size:.82rem;padding:12px 10px}.admin-content{padding:14px}.filters{align-items:stretch;flex-direction:column}.filter-group,.filter-group input[type=date],.filter-group select,.filters .add-btn,.filters .export-btn{width:100%}.section-header{align-items:flex-start;flex-direction:column;gap:10px}.section-header .add-btn,.section-header .export-btn{align-self:flex-start}.hours-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.hours-card{padding:14px 16px}.hours-card .hours-display{font-size:1.5rem}.total-banner{flex-wrap:wrap;gap:4px;padding:14px 16px}.total-banner span:last-child{font-size:1.2rem}.live-grid{grid-template-columns:1fr}.live-summary{gap:10px;padding:14px 16px}.live-summary__divider{display:none}.live-summary__number{font-size:2rem}.live-refresh{align-items:center;flex-direction:row;gap:10px;margin-left:auto}.modal{border-radius:18px;border-radius:var(--r-lg);padding:24px 18px}.login-card{padding:32px 22px}.chart-wrapper{padding:18px 12px}.chart-title{font-size:.95rem}}@media (max-width:400px){.hours-grid{grid-template-columns:1fr}.section-title{font-size:1rem}}@media (min-width:640px) and (max-width:899px){.admin-content{padding:20px}.live-grid{grid-template-columns:repeat(2,1fr)}.hours-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.live-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hours-grid{grid-template-columns:repeat(auto-fill,minmax(195px,1fr))}}@media (max-height:700px) and (min-width:600px){.clock-screen{justify-content:space-evenly;padding:14px 24px}.restaurant-header{max-width:280px}.live-clock{margin-bottom:8px}.clock-time{font-size:2.2rem}.clock-date{font-size:.8rem}.pin-container{padding:18px 22px}.numpad-btn{font-size:1.4rem;min-height:60px}}@media (hover:none){.add-btn:hover,.delete-btn:hover,.edit-btn:hover,.export-btn:hover,.hours-card:hover,.live-card:hover,.login-btn:hover,.numpad-btn:hover,.save-btn:hover{filter:none;transform:none}.numpad-btn:active{transform:scale(.92)}}.vacation-hint{color:#5e6b64;color:var(--c-muted);font-size:.85rem;line-height:1.5;margin-bottom:20px}.vacation-section{margin-bottom:28px}.vacation-group-title{color:#5e6b64;color:var(--c-muted);font-size:.8rem;font-weight:700;letter-spacing:.06em;margin-bottom:10px;text-transform:uppercase}.vacation-group-title--active{color:#e8a820}.vacation-list{display:flex;flex-direction:column;gap:8px}.vacation-card{align-items:center;background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-radius:12px;border-radius:var(--r-md);display:flex;justify-content:space-between;padding:12px 16px}.vacation-card--on{background:#fffbf0;border-color:#e8a820}.vacation-group-title--leave{color:#2e6da4}.vacation-card--leave{background:#f2f7fc;border-color:#2e6da4}.vacation-card__name{color:#0e211d;color:var(--c-dark);font-weight:600}.vacation-btn{border:none;border-radius:8px;border-radius:var(--r-sm);cursor:pointer;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.8rem;font-weight:600;padding:6px 14px;transition:opacity .22s;transition:opacity var(--t-base)}.vacation-btn:disabled{cursor:not-allowed;opacity:.5}.vacation-btn--send{background:#fff3cd;color:#856404}.vacation-btn--return{background:#d4edda;color:#155724}.vacation-btn--leave{background:#dceaf7;color:#1f4e79}.vacation-card__actions{display:flex;gap:8px}.vacation-btn--cancel{background:#0000;border:1px solid #ebd8c0;color:#5c3a22}.vacation-btn--cancel:hover{opacity:.7}.vacation-card__info{display:flex;flex-direction:column;gap:2px}.vacation-card__dates{color:#b84a2e;font-size:.78rem;font-weight:600}.vacation-datepicker{display:flex;flex-direction:column;gap:8px;margin-top:8px;width:100%}.vacation-datepicker__row{align-items:center;display:flex;gap:10px}.vacation-datepicker__row label{color:#5c3a22;font-size:.8rem;font-weight:600;min-width:42px}.vacation-datepicker__row input[type=date]{background:#fff8ee;border:1px solid #ebd8c0;border-radius:8px;color:#2d1a0e;flex:1 1;font-family:inherit;font-size:.82rem;padding:5px 8px}.vacation-datepicker__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.week-nav{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.week-nav__btn{background:#fff8ee;border:1px solid #ebd8c0;border-radius:8px;color:#5c3a22;cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:5px 12px;transition:opacity .22s}.week-nav__btn:hover:not(:disabled){opacity:.75}.week-nav__input{background:#fff8ee;border:1px solid #ebd8c0;border-radius:8px;color:#2d1a0e;font-family:inherit;font-size:.82rem;padding:5px 8px}.issues-list{display:flex;flex-direction:column;gap:12px}.issue-card{background:#fffdf9;background:var(--c-surface);border:1.5px solid #e6dccd;border:1.5px solid var(--c-border);border-left-width:5px;border-radius:12px;border-radius:var(--r-md);padding:16px 18px}.issue-card--entrada_fantasma,.issue-card--turno_abierto{border-left-color:#b84a2e}.issue-card--olvido_fichar,.issue-card--turno_largo{border-left-color:#e8a820}.issue-card--doble_pulsacion,.issue-card--salida_huerfana{border-left-color:#8a8a8a}.issue-card__head{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:6px}.issue-card__worker{color:#0e211d;color:var(--c-dark);font-weight:700}.issue-card__date{color:#5e6b64;color:var(--c-muted);font-size:.8rem;white-space:nowrap}.issue-card__title{color:#b84a2e;font-size:.78rem;font-weight:700;letter-spacing:.06em;margin-bottom:6px;text-transform:uppercase}.issue-card__text{color:#0e211d;color:var(--c-dark);font-size:.92rem;line-height:1.5;margin:0}.issue-card__hint{color:#5e6b64;color:var(--c-muted);font-size:.84rem;font-style:italic;margin:6px 0 0}.issue-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tab-badge{background:#b84a2e;border-radius:10px;color:#fff;display:inline-block;font-size:.72rem;font-weight:700;margin-left:6px;min-width:18px;padding:1px 6px;text-align:center}@media (max-width:639px){.issue-card__actions{flex-direction:column}.issue-card__actions .cancel-btn,.issue-card__actions .save-btn{text-align:center;width:100%}}.bars{display:flex;flex-direction:column;gap:18px;margin:20px 0 24px}.bars__head{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:6px}.bars__name{color:#0e211d;color:var(--c-dark);font-size:.95rem;font-weight:700}.bars__value{font-feature-settings:"tnum";color:#3e5246;color:var(--c-mid);font-size:.85rem;font-variant-numeric:tabular-nums}.bars__extra{background:#fff3cd;border-radius:10px;color:#856404;font-size:.74rem;font-weight:700;margin-left:8px;padding:1px 7px}.bars__track{background:#efe7db;background:var(--c-border-light);border-radius:4px;height:14px;overflow:hidden}.bars__fill{background:#b0603f;background:var(--c-primary);border-radius:4px;height:100%;transition:width .7s cubic-bezier(.22,1,.36,1)}.bars__delta{font-size:.8rem;font-weight:600;margin-top:5px}.bars__delta--sube{color:#2e6b4e;color:var(--c-success)}.bars__delta--baja{color:#b0603f;color:var(--c-primary)}.bars__delta span{margin-right:5px}.bars-skeleton{display:flex;flex-direction:column;gap:18px;margin:20px 0}.bars-skeleton__row{display:flex;flex-direction:column;gap:6px}.bars-skeleton__bar,.bars-skeleton__label{animation:bars-shimmer 1.4s infinite;background:linear-gradient(90deg,#efe7db 25%,#e6dccd 50%,#efe7db 75%);background:linear-gradient(90deg,var(--c-border-light) 25%,var(--c-border) 50%,var(--c-border-light) 75%);background-size:200% 100%;border-radius:4px;height:14px}.bars-skeleton__label{height:11px;width:120px}@keyframes bars-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.bars__fill{transition:none}.bars-skeleton__bar,.bars-skeleton__label{animation:none}}:root{--k-fondo:#f9f4ed;--k-tinta:#0e211d;--k-verde:#1b2e2a;--k-verde-medio:#20352f;--k-verde-claro:#3e5246;--k-terracota-claro:#c98165;--k-terracota:#b0603f;--k-terracota-oscuro:#833e27;--k-oro:#b8955c;--k-oro-suave:#c7a982;--k-tecla:#f1ebe1;--k-tecla-borde:#e4d9c9;--k-nota:#eee6de;--k-texto-suave:#4a5a55;--k-alerta-fondo:#f5e2d7;--k-alerta-borde:#ebc3b2;--k-alerta-texto:#a73f27;--font-kiosko:"Albert Sans",system-ui,-apple-system,"Segoe UI",sans-serif}.kiosk{-webkit-tap-highlight-color:transparent;background:#f9f4ed;background:var(--k-fondo);color:#0e211d;color:var(--k-tinta);display:flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);justify-content:center;min-height:100vh;min-height:100dvh;overflow:hidden;position:relative}.kiosk__decor{inset:0;pointer-events:none;position:absolute;z-index:0}.kiosk__agave{-webkit-user-drag:none;display:block;height:auto;position:absolute;-webkit-user-select:none;user-select:none}.kiosk__agave--arriba{right:0;top:0;width:clamp(128px,26vw,257px)}.kiosk__agave--abajo{bottom:0;left:0;width:clamp(150px,33vw,330px)}.kiosk__arco{background:linear-gradient(165deg,#c47257,#aa573d 55%,#8e4631);border-top-left-radius:999px;bottom:0;height:clamp(170px,24vh,360px);position:absolute;right:0;width:clamp(54px,12vw,124px)}.kiosk__contenido{max-width:560px;min-height:100vh;min-height:100dvh;padding:clamp(18px,3.2vh,40px) 20px clamp(16px,2.6vh,30px);position:relative;z-index:1}.kiosk__cabecera,.kiosk__contenido{align-items:center;display:flex;flex-direction:column;width:100%}.kiosk__logo{aspect-ratio:1;height:clamp(96px,17vh,224px);object-fit:contain;width:auto}.kiosk__rotulo{align-items:center;color:#1b2e2a;color:var(--k-verde);display:flex;font-size:clamp(.72rem,1.5vh,.95rem);font-weight:500;gap:16px;letter-spacing:.38em;margin-top:clamp(4px,1vh,12px);max-width:440px;text-transform:uppercase;width:100%}.kiosk__rotulo:after,.kiosk__rotulo:before{background:#b8955c;background:var(--k-oro);content:"";flex:1 1;height:1px}.kiosk__rotulo span{padding-left:.38em;white-space:nowrap}.kiosk__reloj{text-align:center}.kiosk__hora{font-feature-settings:"tnum";color:#0e211d;color:var(--k-tinta);display:block;font-size:clamp(2.6rem,min(14vw,8.4vh),6rem);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.02em;line-height:1.04}.kiosk__fecha{color:#1b2e2a;color:var(--k-verde);font-size:clamp(.82rem,1.7vh,1.08rem);font-weight:500;letter-spacing:.1em}.kiosk__pie{justify-content:flex-start;margin-top:auto;padding-top:clamp(14px,2.4vh,28px)}.kiosk-pin,.kiosk__pie{display:flex;width:100%}.kiosk-pin{align-items:center;flex-direction:column;margin-top:clamp(14px,3vh,40px)}.kiosk-pin__etiqueta{color:#1b2e2a;color:var(--k-verde);font-size:clamp(.95rem,1.9vh,1.15rem)}.kiosk-pin__puntos{display:flex;gap:18px;margin:clamp(10px,1.6vh,18px) 0 clamp(14px,2.4vh,28px)}.kiosk-pin__punto{border:1.5px solid #c7a982;border:1.5px solid var(--k-oro-suave);border-radius:50%;height:26px;transition:background .15s,border-color .15s,transform .15s;width:26px}.kiosk-pin__punto--lleno{background:#1b2e2a;background:var(--k-verde);border-color:#1b2e2a;border-color:var(--k-verde);transform:scale(.9)}.kiosk-pin__puntos--error{animation:kioskTemblor .4s ease-in-out}.kiosk-pin__puntos--error .kiosk-pin__punto{border-color:#a73f27;border-color:var(--k-alerta-texto)}@keyframes kioskTemblor{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}.kiosk-teclado{--tecla:clamp(58px,8.6vh,92px);grid-gap:clamp(10px,1.7vh,20px) clamp(20px,5vw,44px);display:grid;gap:clamp(10px,1.7vh,20px) clamp(20px,5vw,44px);grid-template-columns:repeat(3,var(--tecla))}.kiosk-tecla{background:#f1ebe1;background:var(--k-tecla);border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);border-radius:50%;box-shadow:inset 0 1px 0 #ffffffbf,0 2px 5px #5a3c1e12;color:#1b2e2a;color:var(--k-verde);cursor:pointer;display:grid;font:500 calc(var(--tecla)*.4) /1 Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font:500 calc(var(--tecla)*.4) /1 var(--font-kiosko);height:var(--tecla);place-items:center;touch-action:manipulation;transition:transform .12s,background .12s;width:var(--tecla)}.kiosk-tecla:active{background:#e7ddce;transform:scale(.93)}.kiosk-tecla:disabled{cursor:progress;opacity:.55}.kiosk-tecla svg{height:40%;width:40%}.kiosk-pin__avisos{align-items:flex-start;margin-top:clamp(12px,2vh,22px);min-height:64px;width:100%}.kiosk-alerta,.kiosk-pin__avisos{display:flex;justify-content:center}.kiosk-alerta{text-wrap:balance;align-items:center;background:#f5e2d7;background:var(--k-alerta-fondo);border:1px solid #ebc3b2;border:1px solid var(--k-alerta-borde);border-radius:16px;color:#a73f27;color:var(--k-alerta-texto);font-size:.98rem;font-weight:600;gap:12px;max-width:440px;padding:12px 20px;text-align:center}.kiosk-alerta svg{flex-shrink:0;height:26px;width:26px}.kiosk-alerta__separador{align-self:stretch;background:#ebc3b2;background:var(--k-alerta-borde);width:1px}.kiosk-alerta button{background:none;border:0;color:inherit;cursor:pointer;font:inherit;font-weight:500;padding:4px;text-decoration:underline;text-underline-offset:3px}.kiosk-elegir{align-items:center;display:flex;flex-direction:column;margin-top:clamp(14px,3vh,40px);width:100%}.kiosk-saludo{text-wrap:balance;color:#0e211d;color:var(--k-tinta);font-size:clamp(1.6rem,3.4vh,2.3rem);font-weight:700;line-height:1.15;text-align:center}.kiosk-pregunta{color:#1b2e2a;color:var(--k-verde);font-size:clamp(.98rem,1.9vh,1.15rem);margin-top:2px}.kiosk-acciones{grid-gap:clamp(12px,2.4vw,20px);display:grid;gap:clamp(12px,2.4vw,20px);grid-template-columns:1fr 1fr;margin-top:clamp(16px,2.8vh,32px);width:100%}.kiosk-accion{align-items:center;border:0;border-radius:22px;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);gap:6px;justify-content:center;min-height:clamp(180px,27vh,320px);overflow:hidden;padding:18px 12px;position:relative;touch-action:manipulation;transition:transform .15s,filter .15s}.kiosk-accion--abrir{background:linear-gradient(155deg,#3e5246,#20352f 55%,#1b2e2a);background:linear-gradient(155deg,var(--k-verde-claro) 0,var(--k-verde-medio) 55%,var(--k-verde) 100%);box-shadow:0 16px 30px -16px #1b2e2a99}.kiosk-accion--cerrar{background:linear-gradient(155deg,#c98165,#b0603f 52%,#833e27);background:linear-gradient(155deg,var(--k-terracota-claro) 0,var(--k-terracota) 52%,var(--k-terracota-oscuro) 100%);box-shadow:0 16px 30px -16px #833e27a6}.kiosk-accion:active{filter:brightness(.96);transform:scale(.97)}.kiosk-accion:disabled{cursor:progress;filter:saturate(.7)}.kiosk-accion__hoja{filter:brightness(0) invert(1);opacity:.1;pointer-events:none;position:absolute;right:-20%;top:-10%;width:72%}.kiosk-accion--abrir .kiosk-accion__hoja{left:-24%;right:auto;transform:scaleX(-1)}.kiosk-accion__circulo{aspect-ratio:1;background:#faf6f0f0;border-radius:50%;color:#1b2e2a;color:var(--k-verde);display:grid;margin-bottom:clamp(8px,1.6vh,18px);place-items:center;position:relative;width:clamp(64px,9vh,104px)}.kiosk-accion--cerrar .kiosk-accion__circulo{background:#fcece4f0;color:#b0603f;color:var(--k-terracota)}.kiosk-accion__circulo svg{height:44%;width:44%}.kiosk-accion__titulo{font-size:clamp(1.05rem,2.4vh,1.5rem);font-weight:800;letter-spacing:.02em;position:relative;text-transform:uppercase}.kiosk-accion__sub{font-size:clamp(.85rem,1.7vh,1.02rem);opacity:.86;position:relative}.kiosk-nota{align-items:center;background:#eee6de;background:var(--k-nota);border-radius:18px;color:#1b2e2a;color:var(--k-verde);display:flex;gap:16px;margin-top:clamp(14px,2.6vh,30px);padding:14px 22px;width:min(100%,460px)}.kiosk-nota svg{flex-shrink:0;height:36px;width:36px}.kiosk-nota strong{color:#0e211d;color:var(--k-tinta);display:block;font-size:1.02rem;font-weight:700}.kiosk-nota span{color:#4a5a55;color:var(--k-texto-suave);display:block;font-size:.9rem}.kiosk-resultado{align-items:center;animation:kioskAparece .3s cubic-bezier(0,0,.2,1) both;animation:kioskAparece .3s var(--ease-out) both;display:flex;flex-direction:column;margin-top:clamp(20px,5vh,70px);text-align:center;width:100%}@keyframes kioskAparece{0%{transform:translateY(14px) scale(.98)}to{transform:none}}.kiosk-resultado__icono{aspect-ratio:1;background:#1b2e2a;background:var(--k-verde);border-radius:50%;box-shadow:0 16px 30px -14px #1b2e2a99;color:#fff;display:grid;place-items:center;width:clamp(96px,14vh,150px)}.kiosk-resultado--salida .kiosk-resultado__icono{background:#b0603f;background:var(--k-terracota);box-shadow:0 16px 30px -14px #833e2799}.kiosk-resultado--error .kiosk-resultado__icono{background:#f5e2d7;background:var(--k-alerta-fondo);border:1px solid #ebc3b2;border:1px solid var(--k-alerta-borde);box-shadow:none;color:#a73f27;color:var(--k-alerta-texto)}.kiosk-resultado__icono svg{height:46%;width:46%}.kiosk-resultado__estado{color:#0e211d;color:var(--k-tinta);font-size:clamp(1.7rem,3.8vh,2.6rem);font-weight:800;margin-top:clamp(14px,2.6vh,26px)}.kiosk-resultado__detalle{text-wrap:balance;color:#1b2e2a;color:var(--k-verde);font-size:clamp(1.05rem,2.2vh,1.35rem);margin-top:6px;max-width:440px}.kiosk-resultado__acciones{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(18px,3vh,32px)}.kiosk-boton{align-items:center;background:#1b2e2a;background:var(--k-verde);border:0;border-radius:999px;box-shadow:0 12px 24px -14px #1b2e2ab3;color:#faf6ef;cursor:pointer;display:inline-flex;font:600 1.05rem Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font:600 1.05rem var(--font-kiosko);gap:14px;justify-content:center;letter-spacing:.14em;min-height:60px;padding:0 38px;text-transform:uppercase;touch-action:manipulation;transition:transform .12s,filter .12s}.kiosk-boton:active{transform:scale(.97)}.kiosk-boton:disabled{cursor:not-allowed;opacity:.55}.kiosk-pastilla{align-items:center;background:#eee6de;background:var(--k-nota);border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);border-radius:999px;box-shadow:0 2px 6px #5a3c1e14;color:#1b2e2a;color:var(--k-verde);cursor:pointer;display:inline-flex;font:500 1rem Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font:500 1rem var(--font-kiosko);gap:10px;min-height:48px;padding:0 24px 0 18px;touch-action:manipulation}.kiosk-pastilla svg{height:18px;width:18px}.kiosk-accion:focus-visible,.kiosk-alerta button:focus-visible,.kiosk-boton:focus-visible,.kiosk-pastilla:focus-visible,.kiosk-tecla:focus-visible{outline:3px solid #b8955c;outline:3px solid var(--k-oro);outline-offset:3px}.kiosk-login{display:flex;flex-direction:column;gap:12px;margin-top:clamp(24px,5vh,60px);width:min(100%,420px)}.kiosk-login__etiqueta{color:#1b2e2a;color:var(--k-verde);font-size:1.05rem;text-align:center}.kiosk-login__campo{background:#fffdf9;border:1.5px solid #e4d9c9;border:1.5px solid var(--k-tecla-borde);border-radius:16px;color:#0e211d;color:var(--k-tinta);font:500 1.25rem Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font:500 1.25rem var(--font-kiosko);letter-spacing:.12em;min-height:60px;padding:0 20px;text-align:center;width:100%}.kiosk-login__campo:focus{border-color:#b8955c;border-color:var(--k-oro);box-shadow:0 0 0 4px #b8955c38;outline:none}.kiosk-login .kiosk-boton{margin-top:6px;width:100%}@media (max-width:380px){.kiosk-acciones{gap:10px}.kiosk-accion{border-radius:18px;min-height:160px}.kiosk-accion__titulo{font-size:.95rem}}@media (prefers-reduced-motion:reduce){.kiosk-pin__puntos--error,.kiosk-resultado{animation:none}}.tecnico-badge{background:#d9b77e;background:var(--c-gold);border-radius:999px;color:var(--c-dark);display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.06em;margin-left:10px;padding:2px 10px;text-transform:uppercase;vertical-align:middle}.admin-panel{background:#f9f4ed;background:var(--k-fondo);color:#0e211d;color:var(--k-tinta);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.admin-content,.hours-card,.live-card,.live-summary{animation:none}.admin-header,.safe-area-top{background:#1b2e2a;background:var(--k-verde)}.admin-header{box-shadow:0 1px 0 #0e211d66;flex-wrap:nowrap;gap:12px;padding:10px clamp(14px,4vw,32px)}.admin-header__marca{align-items:center;display:flex;gap:12px;min-width:0}.admin-header__logo{background:#faf6ef;border-radius:50%;flex-shrink:0;height:46px;object-fit:contain;padding:3px;width:46px}.admin-header__textos{min-width:0}.admin-header h1{color:#faf6ef;font-size:1.08rem;font-weight:700;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-header p{align-items:center;color:#c7a982;color:var(--k-oro-suave);display:flex;flex-wrap:wrap;font-size:.7rem;font-weight:500;gap:8px;letter-spacing:.16em;margin-top:1px;opacity:1;text-transform:uppercase}.tecnico-badge{background:#b8955c;background:var(--k-oro);color:#0e211d;color:var(--k-tinta);letter-spacing:.08em;margin-left:0;padding:1px 8px}.logout-btn{align-items:center;background:#0000;border:1px solid #faf6ef52;color:#faf6ef;display:inline-flex;flex-shrink:0;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);font-weight:500;gap:8px;min-height:40px;padding:0 16px}.logout-btn:hover{background:#faf6ef1a}.logout-btn svg{height:17px;width:17px}.admin-tabs{background:#0000;border-bottom:0;flex-wrap:wrap;gap:8px;margin:0 auto;max-width:1140px;overflow:visible;padding:16px clamp(14px,4vw,32px) 2px}.tab-btn{align-items:center;background:#fffdf9;border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);border-radius:999px;display:inline-flex;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);font-size:.9rem;font-weight:500;gap:6px;margin-bottom:0;min-height:40px;padding:0 16px}.tab-btn,.tab-btn:hover{color:#1b2e2a;color:var(--k-verde)}.tab-btn:hover{background:#eee6de;background:var(--k-nota)}.tab-btn.active{background:#1b2e2a;background:var(--k-verde);border-color:#1b2e2a;border-color:var(--k-verde);color:#faf6ef;font-weight:600}.tab-btn.active:after{display:none}.tab-btn:focus-visible{outline:3px solid #b8955c;outline:3px solid var(--k-oro);outline-offset:2px}.admin-content{padding:20px clamp(14px,4vw,32px) 48px}.chart-title,.section-title{color:#0e211d;color:var(--k-tinta);font-size:clamp(1.12rem,2.2vw,1.35rem);font-weight:700}.add-btn,.chart-title,.save-btn,.section-title{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.add-btn,.save-btn{background:#1b2e2a;background:var(--k-verde);box-shadow:0 8px 18px -12px #1b2e2ab3;font-weight:600;min-height:42px}.add-btn:hover,.save-btn:hover{filter:brightness(1.18)}.export-btn{background:#0000;border:1.5px solid #1b2e2a;border:1.5px solid var(--k-verde);box-shadow:none;color:#1b2e2a;color:var(--k-verde);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);font-weight:600;min-height:42px}.export-btn:hover{background:#eee6de;background:var(--k-nota);filter:none}.cancel-btn{background:#eee6de;background:var(--k-nota);min-height:42px}.cancel-btn,.delete-btn,.edit-btn,.week-nav__btn{border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);color:#1b2e2a;color:var(--k-verde);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.delete-btn,.edit-btn,.week-nav__btn{background:#fffdf9;font-weight:600;min-height:36px}.edit-btn:hover,.week-nav__btn:hover:not(:disabled){background:#eee6de;background:var(--k-nota);opacity:1}.delete-btn{border-color:#ebc3b2;border-color:var(--k-alerta-borde);color:#a73f27;color:var(--k-alerta-texto)}.delete-btn:hover{background:#f5e2d7;background:var(--k-alerta-fondo)}.chart-wrapper,.data-table,.hours-card,.issue-card,.live-card,.live-summary{background:#fffdf9;border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);box-shadow:0 1px 2px #0e211d0a}.data-table{border-radius:18px}.data-table th{background:#eee6de;background:var(--k-nota);border-bottom:1px solid #e4d9c9;border-bottom:1px solid var(--k-tecla-borde);color:#4a5a55;color:var(--k-texto-suave);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);font-size:.72rem;letter-spacing:.1em}.data-table td{border-bottom-color:#f1eadf;color:#0e211d;color:var(--k-tinta)}.data-table tbody tr:nth-child(2n) td{background:#0000}.data-table tbody tr:hover td{background:#fbf7f1}.pin-badge{background:#eee6de;background:var(--k-nota);border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);box-shadow:none;color:#1b2e2a;color:var(--k-verde)}.type-badge.salida{background:#f5e2d7;background:var(--k-alerta-fondo);color:#a73f27;color:var(--k-alerta-texto)}.filter-group label,.form-group label{color:#4a5a55;color:var(--k-texto-suave);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.filter-group input[type=date],.filter-group select,.form-group input,.form-group select{background:#fffdf9;border-color:#e4d9c9;border-color:var(--k-tecla-borde);border-radius:12px;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);min-height:44px}.filter-group input[type=date]:focus,.filter-group select:focus,.form-group input:focus,.form-group select:focus{border-color:#b8955c;border-color:var(--k-oro);box-shadow:0 0 0 3px #b8955c38}.modal-overlay{align-items:flex-start;background:#0e211d80;overflow-y:auto;overscroll-behavior:contain;padding:max(20px,env(safe-area-inset-top)) 14px max(20px,env(safe-area-inset-bottom))}.modal{background:#fffdf9;border:1px solid #e4d9c9;border:1px solid var(--k-tecla-borde);border-radius:22px;margin:auto}.modal h2{color:#0e211d;color:var(--k-tinta);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.live-summary{border-radius:18px}.live-summary__number{font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.live-summary__count--in .live-summary__number{color:#1b2e2a;color:var(--k-verde)}.live-summary__label{color:#4a5a55;color:var(--k-texto-suave);letter-spacing:.08em}.live-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}.live-grid>*{min-width:0}.live-card{border-left-width:5px;border-radius:18px}.live-card--in{border-left-color:#1b2e2a;border-left-color:var(--k-verde)}.live-card--in .live-card__avatar{background:#1b2e2a;background:var(--k-verde)}.live-card--out .live-card__avatar{background:#bfb3a2}.live-card__name{color:#0e211d;color:var(--k-tinta);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.live-card__status--in,.live-section__title--in{color:#1b2e2a;color:var(--k-verde)}.pulse-dot{background:#3e8e65}.live-card__close{background:#eee6de;background:var(--k-nota);border-color:#e4d9c9;border-color:var(--k-tecla-borde);color:#833e27;color:var(--k-terracota-oscuro);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko);min-height:34px}.total-banner{background:#1b2e2a;background:var(--k-verde);border-radius:16px;box-shadow:none}.total-banner--overtime{background:#833e27;background:var(--k-terracota-oscuro)}.total-banner span:last-child{color:#c7a982;color:var(--k-oro-suave);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.hours-card{border-left:4px solid #1b2e2a;border-left:4px solid var(--k-verde);border-radius:18px}.hours-card .worker-name{color:#1b2e2a;color:var(--k-verde)}.hours-card .hours-display{color:#0e211d;color:var(--k-tinta);font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-kiosko)}.chart-wrapper{border-radius:18px}.chart-subtitle{color:#4a5a55;color:var(--k-texto-suave)}@media (max-width:639px){.admin-header{padding:8px 12px}.admin-header__logo{height:40px;width:40px}.admin-header h1{font-size:.98rem}.logout-btn{padding:0 12px}.admin-tabs{gap:6px;padding:12px 12px 0}.tab-btn{font-size:.84rem;min-height:38px;padding:0 12px}.admin-content{padding:16px 12px 40px}.data-table--cards tr,.data-table--cards tr:nth-child(2n){background:#0000}.data-table--cards tr{border-bottom-color:#f1eadf;padding:14px 16px}.data-table--trabajadores tr{grid-column-gap:12px;align-items:center;column-gap:12px;display:grid;grid-template-columns:minmax(0,1fr) auto}.data-table--trabajadores td{padding:0}.data-table--trabajadores td:before{display:none}.data-table--trabajadores td:first-child{font-size:1rem;grid-column:1;grid-row:1}.data-table--trabajadores td:nth-child(2){grid-column:2;grid-row:1}.data-table--trabajadores td:nth-child(3){color:#4a5a55;color:var(--k-texto-suave);font-size:.84rem;grid-column:1/-1;grid-row:2}.data-table--trabajadores td:nth-child(3):before{content:"Alta desde";display:inline;min-width:0}.data-table--trabajadores td:nth-child(4){grid-column:1/-1;grid-row:3;margin-top:10px}.data-table--trabajadores .action-btns{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;width:100%}.data-table--registros tr{grid-column-gap:12px;grid-row-gap:6px;align-items:center;column-gap:12px;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;row-gap:6px}.data-table--registros td{padding:0}.data-table--registros td:before{display:none}.data-table--registros td:first-child{grid-column:1/4;grid-row:1;min-width:0}.data-table--registros td:nth-child(2){grid-column:4;grid-row:1;justify-self:end}.data-table--registros td:nth-child(3){color:#4a5a55;color:var(--k-texto-suave);grid-column:1;grid-row:2}.data-table--registros td:nth-child(4){font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;grid-column:2;grid-row:2}.data-table--registros td:nth-child(5){grid-column:4;grid-row:2;justify-self:end}.live-summary{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 12px}.live-summary__count{min-width:0}.live-summary__number{font-size:1.9rem}.live-summary__label{font-size:.64rem}.live-refresh{grid-column:1/-1;justify-content:center;margin-left:0}.live-grid{grid-template-columns:minmax(0,1fr)}.chart-svg{min-width:620px}.chart-summary .data-table td:first-child,.chart-summary .data-table th:first-child{background:#fffdf9;box-shadow:1px 0 0 #e4d9c9;box-shadow:1px 0 0 var(--k-tecla-borde);left:0;position:-webkit-sticky;position:sticky;z-index:1}.chart-summary .data-table th:first-child{background:#eee6de;background:var(--k-nota)}.chart-summary .data-table td:first-child strong{display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-nav{gap:8px}.week-nav__btn,.week-nav__input{flex:1 1 140px}}@media (max-width:380px){.logout-btn__texto{display:none}.logout-btn{justify-content:center;padding:0;width:40px}.tab-btn{font-size:.8rem;padding:0 10px}}@supports (-webkit-touch-callout:none){.admin-panel input[type=date],.admin-panel input[type=time]{-webkit-appearance:none;appearance:none;display:block;min-width:0}.admin-panel input::-webkit-date-and-time-value{text-align:left}}.section-header__acciones{display:flex;flex-wrap:wrap;gap:8px}.add-shift__horas{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.add-shift__resumen{background:#eee6de;background:var(--k-nota);border-radius:12px;color:#1b2e2a;color:var(--k-verde);font-size:.88rem;line-height:1.45;margin-top:4px;padding:10px 14px}.add-shift__resumen strong{color:#0e211d;color:var(--k-tinta)}.kiosk-acciones--unica{grid-template-columns:minmax(0,1fr);margin-inline:auto;max-width:460px}.kiosk-accion--unica{gap:8px;min-height:clamp(230px,34vh,400px)}.kiosk-accion--unica .kiosk-accion__circulo{width:clamp(84px,12vh,132px)}.kiosk-accion--unica .kiosk-accion__titulo{font-size:clamp(1.4rem,3.4vh,2rem)}.kiosk-accion--unica .kiosk-accion__sub{font-size:clamp(.95rem,2vh,1.15rem)}.kiosk-accion--unica .kiosk-accion__hoja{width:56%}.kiosk-nota--aviso{background:#f5e2d7;background:var(--k-alerta-fondo)}.kiosk-nota--aviso,.kiosk-nota--aviso span,.kiosk-nota--aviso strong{color:#a73f27;color:var(--k-alerta-texto)}.kiosk-alerta--espera{background:#eee6de;background:var(--k-nota);border-color:#e4d9c9;border-color:var(--k-tecla-borde);color:#1b2e2a;color:var(--k-verde)}.kiosk-alerta--espera .kiosk-alerta__separador{background:#e4d9c9;background:var(--k-tecla-borde)}
/*# sourceMappingURL=main.1b34fd04.css.map*/